Перейти к содержанию
Fire Monkey от А до Я

Сергей Сергеев

Пользователи
  • Постов

    144
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Сообщения, опубликованные Сергей Сергеев

  1. В 20.03.2020 в 11:48, Ingalime сказал:

    Я с ini в vcl имею опыт работы. Я не до конца понимаю как с ini работать в ios проекте. Т.е. мне при старте надо создать этот файл? А где его создовать? Можно пример? Спасибо.

    у меня приложение работает так и в Андроид и Иос

    в FormShow - вызываю Read, при первом запуске файла нет, ничего не заполняется.

    При первом заполнении вручную полей и попытке входа по кнопке - делаю сохранение Write

    При следующем запуске - файл уже есть и параметры входа считаются

    Для создания файла со значениями "по умолчанию" можно сделать  в Read - try - Except ( добавил ) - но не проверял 

     

    Цитата

     

    procedure TFormMain.FormReadState(Sender: TObject);
    var
      Ini: TIniFile;
    begin
     ini := TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'fdw.ini'));
     try

       try


         EditName.Text := Ini.ReadString( 'Main', 'Name', '' );
         EditOtch.Text := Ini.ReadString( 'Main', 'MName', '' );
         EditDR.Text := Ini.ReadString( 'Main', 'DR', '' );
     

     

    Except


     Ini.WriteString( 'Main', 'Name', 'Умолчание' ) ;
     Ini.WriteString( 'Main', 'MName', 'Умолчание' ) ;
     Ini.WriteString( 'Main', 'DR', '01.01.1980') ;

    end 

    finally
      Ini.Free;
     end;

    end;

     

     

     

    Цитата

     

    procedure TFormMain.FormSaveState(Sender: TObject);
    var
     Ini: TIniFile;

    begin

     ini := TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'fdw.ini'));
     try

     Ini.WriteString( 'Main', 'Name', (FrmLogin as  TFrameLogin).editName.Text ) ;
     Ini.WriteString( 'Main', 'MName', (FrmLogin as  TFrameLogin).EditOtch.Text ) ;
     Ini.WriteString( 'Main', 'DR', (FrmLogin as  TFrameLogin).EditDR.Text ) ;

     finally
      Ini.Free;
     end;

    end;

     

     

  2. вообщем все заработало, проблема была в криво установленном Xcode ( устанавливал скачивая из developer.apple.com, установился в папку Загрузки) поэтому был не видим для PAS, перетащил в Программы и это оживило, потом для верности, еще и переустановил из АппСтор последний.

    решение здесь

  3. 18 минут назад, Edward Tarasov сказал:

    У catalina проблема была с PAserver(точно не помню или он на 64 бит не переведен или еще че) корочь решается установкой на винду VMware и скачивание образа 10.14.(последнего) дальше туда все накатываешь и терпимо работает. а дальше ждем пока не решат проблему с PA

    Спасибо, тоже к этому склоняюсь, но смущают вот такие вещи

    image.thumb.png.08027baa14a81a60ef8f9735d2818e4d.png

     

    с этого же форума..

     

     

  4. Доброго дня!

    После перерыва с ноября, накопились ошибки в приложении ( например стало крашится при установке фокуса в текстовое поле, перестали отправляться письма.. - все это на некоторых моделях Iphone и в 13.3.1)

      и решил обновить версию для IOS,  

    - обновил на МакБуке до Catalina 10.15.3

    - установил Xcode 11.3.1  ( при установке установилась и Command Line Tool)

    image.png.39da178bff7984102c06391097267a36.png

    в Delphi накатил все патчи, в том числе обновил PAS server - 11.2.13.9

    соединил DeskTop b MacBook через роутер..

    и начал создавать профили для OSX и IOS.

    Для OSX видит только SDK CommandLine Tools

    image.thumb.png.74e4eadcec3ecbe9813e6199e2183e04.png

     

    его установил, качал с Мака.. с ним компилится, но на Маке не запускается ничего.. ( чет забыл - или на Мак на флешке надо что то переносить)

     

     для IOS ничего не видит, при попытке установить ..

    image.png.b7d67e00e495fada3e9e289e4bd13d69.png

    пишет

    image.png.28501544816ce0cc27da5d498289d195.png

    я понимаю, что скорее всего Xcode "не той системы" и т.д.

    но вот в Idera форум, вроде бы пишут с таким Xcode работают ( 9 дней назад)..

    image.thumb.png.bb873566f763dd6ee112fc2e721a2a25.png

     

    Есть у кого то похожая рабочая конфигурация? 

    Неужели нужно откатываться на Xcode 11.2.1 ?

     

    пс. не утерпел - поставил 11.2.1 - ровно тоже самое..под IOS не видит SDK.. предидущие разы компилил на Мохаве осенью..

    пспс. начиная с Каталины МакОс выполняет только 64 бит приложения, у меня такого пункта в Таргет платформ не было, добавил.

    но для него не могу  поставить SDK, доступно только одно CommandLine Tools, но и то не цепляется. молча закрывается

    image.thumb.png.e2912ca1bc0953657375ddafe2fb151e.png

    нашел про какойто Notarization для Catalina - это обязательное? может изза этого SDK нет доступных??

    пспспс какже этот Аппл задрал своими бесконечными плясками от версии к версии.. а задача то была просто рекомпилить прогу.. даже не дописать..

    http://docwiki.embarcadero.com/RADStudio/Rio/en/MacOS_Notarization

     

     

     

     

     

     

     

     

  5. 4 часа назад, Yarpda сказал:

    APK не должен превышать 100Мб.

    мой 39 ! есть куда расти еще..

    пс. ПОМОГЛО! вместо ааб- апк сборный и андроид 6 заработал из магазина. Похоже  дельфи бракованный ааб  ( для Андроида 6 ) собирает.. 

  6. В 15.01.2020 в 09:12, Yarpda сказал:

    в папку  library\lib\armeabi-v7a\

    вот недосмотрел, клал в папку  library\lib\arm64-v7a\ , положил в правильную - по шнурку этот АПК 64 запустился на 32 битном устройстве.. и что его можно вместо .ааb выкладывать в магазин?

    псю выложил в магазин.. проверю как выпустят..

  7. В 15.01.2020 в 09:12, Yarpda сказал:

    Попробуйте собрать APK из версий для 32 и 64 бит (нужно в деплое на 64 добавить so файл собранного ранее проекта на 32 бит в папку  library\lib\armeabi-v7a\ ). Тогда уже устройство локально будет решать какую версию приложения использовать. По крайней мере у меня так сработало.

    попробовал

    собрал APK 64 в которой в папке v7a лежит 32 бит .so ( проверил, посмотрел АПК в папке v7A полноценный so на 55 мб, не какаято заглушка)

    image.thumb.png.4d03709f83402ef47ec1bda31238db2d.png

    при запуске на Андр 6 ( 32) этого APK по шнурку, происходит похоже запуск 64 версии, т.к. не крашится а зависает на splash , обычно такое поведение, когда случайно загоняешь на 32 бит ОС - 64 битную версию приложения.

    кстати телефон вроде 64 бит, но работает в 32 битном режиме, видио Андроид такой.

    пс разглядывая deploy увидел, что для 32 бит неактивная строка в 64 битной версии, а также предупреждение компилятора что файл не найден

    Спойлер

    image.thumb.png.82962c0a663478c676fff380a4a1fbb7.png

    [Warning Warning] Local file "c:\program files (x86)\embarcadero\studio\20.0\lib\android\release\armeabi-v7a\libnative-activity.so" not found. Skipping deployment.

    посмотрел по указанному пути - действительно нет папки armeabi-v7a , есть x86 

    Спойлер

    image.png.a886fcab51b45b806d23ec8fde196276.png

    может поэтому проблемы

    - с запуском в 32 ОС , 64 версии апп

    - и в Андр 6 ..

  8. В андроид 6, так и не заработало, по шнурку из Дельфи - работает, 32 бит. Компилирую ааб - в плей маркет, и после установки из него- крашится только на андр 6. 

    Sdk - 28.0.2, ndk - 21, jdk - 8.0.231

    Пс больше всего удивляет, что по шнурку все работает, и не понятно как тестировать теперь, падает только при установке из магазина.

  9. Нашел несколько тем на форуме Дельфи ( андр 5 - крах и т.д.) везде спасает даунгрейд ndk ( для 5.1 до 21) сейчас тоже буду подбирать. 

    Форум Дельфи например, также по моему зависит от версии JDK 

    вопрос  о том, какие SDL/NDK версии будут работать на Андр 5-10 - без ответа..

    пс. поставил NDK - 22 - заработало на 5.1 ( раньше по проводу не работало с NDK 24)

     

  10. У меня эта же ошибка выскакивает у пользователей и на моем тестовом телефоне с андроид 6, и на некоторых 5х. Самое интересное, что при установке по поводу из Дельфи, этой же сборки- все нормально. Нашел несколько тем на форуме Дельфи ( андр 5 - крах и т.д.) везде спасает даунгрейд ndk ( для 5.1 до 21) сейчас тоже буду подбирать. 

  11. Обнаружилась проблема с установкой приложения из GooglePlay на Андроид 6. После перехода на 64 бит и выкладывания файла .aab в магазин, приложение, после запуска на Андроид 6 ( 32 бит) - крашится, при этом если это же приложение установить через USB из Дельфи - все работает нормально. Еще замечено, что на Андроид 5.1 - работает также нормально, и выше 6 - тоже без проблем.

    приложение FDW - приложил дамп смерти.

    судя по стеку не найдена библиотека приложения FDW ( я так понимаю собственно само приложение) загрузчиком. Падает после SplashScreen.

    пс. интересно  проблема общая или частная, есть у кого то успешный опыт выкладки аав - и успешной работы приложения в андроид 6?  

    attachments.zip

  12.  

    1 час назад, Евгений Корепов сказал:

    запустить приложение - значит это легальный пользователь,

    легальный пользователь этого телефона ( если включена разблокировка ) - но мне на сервере важно знать Какой это пользователь из имеющихся? т.к. приложение - это личный кабинет пациента, содержащего мед. информацию, доступ к которой охраняется законами посильнее банковской инфы.

    1 час назад, Евгений Корепов сказал:

    Возьмите на вооружение банковские клиенты - один раз ввел логин/пароль, если успешно, то придумал ПИН-код, и в дальнейшем входишь по нему.

    неоднократно посмотрел, т.е. вместо пары  логин / пароль  - пин код? который лежит в файле на телефоне? и который вполне возможно перенести на другой телефон и - получить доступ к различным диагнозам. Да и пин-код в сбере 5 цифр, в некоторых приложениях - 4, я не смогу по пин-коду определить однозначно пользователя на сервере изза неуникальности и нехватки комбинаций.

    И к тому , во всех приложениях с пин-кодом, при включении в настройках защиты "по пальцу" - можно вместо кода - приложить палец.

    Я думаю, что во всех "серьезных" приложениях, используется не просто Да/Нет по пальцу, а при привязывании приложения к пальцу ( включение этого обычно изнутри личного кабинета, когда имя/пароль уже проверены ) происходит запоминание этой пары ( или только пароля) , в хранилищах паролей. например для Андроида это описано , как создать эту пару - Приложение - пароль, только Дельфи это не поддерживает к сожалению. 

    Но я не претендую на " большую серьезность" , Мне видится такой путь -   если я сложу пару логин- хеш пароля в файл ( или уникальный GUID), например в тот же  TPath.GetDocumentsPath   ( /data/data/<application ID>/files ) нашел такой путь, и меня действительно туда не пускает ТоталКомандером. И по разблокировке ( пин или палец) пошлю эту пару или Guid на сервер и там уже по нему определю пользователя и открою Его кабинет. Понятно, что скопировав файл с устройства на другое - можно получить доступ ( поэтому и хотел как то привязать этот  Guid к параметрам устройства - ИМЕИ, МАС ( осознавая что это не абсолютно - но затруднит 99,99% пользователям возможность украсть информацию), но это уже хакерство какое то.

    Если есть другие предложения - с удовольствием выслушаю.

  13. 39 минут назад, Евгений Корепов сказал:

    Если нужна авторизация, то ее разумно делать не локально в приложении, а на некоем сервере (а приложение в этом случае выступает тонким клиентом).

    это то сделано, я как раз ищу способ идентификации устройства, чтобы в БД запомнить, что пользователь привязал это устройство как доверенное, и при прикладывании "правильного" пальца к сканеру отпечатков ,с этого устройства можно войти без набора пароля ( послав некий УИД устройства (?) ).

    Дельфи - сканер ( обертки Ios/Android , которые есть в продаже) - дает только Да/Нет.. 

    вот тут попытался описать проблему

    39 минут назад, Евгений Корепов сказал:

    для доступа к файлам приложения вам нужно взломать устройство

    например к Загрузкам (TPath.GetSharedDownloadsPath) не надо ничего ломать..

    а вот TPath.GetDocumentsPath - это Android/data/AppleId/files -файловый менеджер открывает но там у меня  пусто - потому что ничего нет? или потому что нет Рут?

    или этот путь TPath.GetDocumentsPath - как раз вообще не виден без Рут?

    по докВики TPath.GetDocumentsPath 

    Android /data/data/<application ID>/files

     

    такой папки data/ не вижу, есть Andriod/data/ - или это разное.. 

  14. В 24.03.2017 в 10:42, Евгений Корепов сказал:

    Рекомендую при первом запуске генерировать GUID (System.SysUtils.CreateGUID), записывать в файл и использовать его

    Но ведь если скопировать этот файл на другое устройство - вся логика привязки сломается.. и возможен несанкционированный вход.. 

     

  15. С наступающем 2020 всех! 

    Есть приложение, которое авторизуется на датаснап сервере по логин/паролю, и далее поддерживается встроенный механизм сессии на сервере.

    Но пользоаватели требуют авторизации по пальцу. Есть компоненты - для ИОС - ТМС, а для Андроид ВинСофт.

    Но оба они только дают событие "успешно" при прикладывании "правильного" пальца или ввода правильного кода ( графического ключа).

    Далее никак не придумаю,  например - "успешно" - как сервер поймет кто это авторизуется? храннить в файле пару логин - пароль, даже зашифровав ее - плохо тем, что скопировав этот файл на другой телефон и приложив "местный" палец - также можно зайти, никакой защиты.

    Покопавшись понял, вроде в кейстор Андроид можно хранить пары - приложение - пароль, в ИОС - не нашел..

    Но ведь эти компоненты Дельфи, не работают  с паролями приложений, кейстором.. а только дают ответ - успешно или нет авторизовался на телефоне..

    уже всю. голову сломал, как организовать авторизацию, не допиливая существующие ( платные) компоненты.

    Спасибо за советы, мысли и еще раз с наступающим!

     

     

  16. 56 минут назад, krapotkin сказал:

    да, спасибо, нашел.. пытаюсь протестить, триальная версия без *.pas - только .dcu, как скомпилить без .pas ? чет не соображу под НГ! С наступающим!

     

    image.thumb.png.bc4a5baaa82276601901eeab653eaaf5.png

     

    это из Demo .. 

    идет набор папок для разных версий Дельфи и разных бит, внутри один и тот же набор файлов

    image.png.7233528e0b02757a19b8fecab24bd09f.png

    ПС. положил в папку проекта, после Build  - ошибки ушли, хотя при Compile до этого ругался. Видимо подхватила.. 

     

  17. 27 минут назад, qz5 сказал:

    AAB нужно собрать

    нашел статью, с ААВ - поставил галочку,  

    на Deploy появилась ошибка, exec.. aab файл не создается

    Спойлер

    image.thumb.png.57d1bc8b67cc7fe49060bc9aadd18496.png

    отдельно 64 бит и отдельно 32 компиляться и создаются в папке bin успешно, или для aab своя последовательность

    также здесь  нашел что 

    Цитата

    You'll also need to provide proper provisioning information and you can generate from the IDE the .aab file to upload to Google Play Store.

    но он у меня задан - уже два года без проблем апк выкладываю.. 

    еще в описании ошибки что  то про версии SDK/NDK.. - то что  установилось с Дельфи, и опять - отдельно то собирается работает..

  18.  

    6 часов назад, sinuke сказал:

    У меня со сплешем все в порядке. Файлы-то цепляются, но прописываются дефолтные имена\пути. Для 9-patch все же приходится их править. Я уже 3 своих приложения обновил и везде пришлось править деплоймент. Зато все работает

     

    Например для android64 платформы среда восстанавливает файлы style.xml. splash_image_def.xml, style.xml для values-v21, даже если они были в android32 отключены. Среда у меня переименовала пути для иконок приложения c res\mipmap на res\drawable. Точно также переименовала имена и пути для файлов сплеша

    извиняюсь за назойливость, проверил  style.xml. splash_image_def.xml, style.xml для values-v21 в папках Android\Release для 32B и  Android64\Release  64b одинаковые, сравнил пути в деплоймент 32 и 64 - все одинаково

    32 bit

     

    Спойлер

    image.thumb.png.63248805eba093177953fd9824dd3afb.png

    64 bit

    Спойлер

    image.thumb.png.03aaa233ec6af6e21f2c248655a83047.png

    нашел разницу в генерируемом файле  ( при том, что исходный файл в проекте - один и тот же)

    Спойлер

    image.png.ea8109935264016298e56240d269a36c.png

    т.е. для 64 - генерируется больше 

    Спойлер

    64 бита

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <item android:drawable="@android:color/black" />
    <item>
    <bitmap
    android:src="@drawable/splash_image"
    android:antialias="true"
    android:dither="true"
    android:filter="true"
    android:gravity="center"
    android:tileMode="disabled"/>
    </item>
    </layer-list>
     

    32 бита

    <?xml version="1.0" encoding="utf-8"?>
    <nine-patch
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/splash_image"
    android:dither="true"/>

    то что лежит в проекте

    <?xml version="1.0" encoding="utf-8"?>
    <nine-patch
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/splash_image"
    android:dither="true"/>

     

     

     

    т.е. получается 64 бита - дописывает в этот файл свои параметры.. которые, похоже и портят картину, gravity и т.д

    как это избежать?

    фикс

     

     

×
×
  • Создать...