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

IgorK11

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

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

  • Посещение

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

    1

Активность репутации

  1. Like
    IgorK11 отреагировална brunnengi в Android 10 (API уровня 29)   
    Здравствуйте.
    Некоторые пользователи Delphi 10.3 столкнулись с тем что даже при указании SDK 29 в манифесте проекта, при запуске скомпилированного приложения на платформе Android 10 происходило его падение.
    В августе 30 числа 2020 года было дано решение как пофиксить эту проблему.
    Переход на версию Delphi 10.4 не для всех является приемлемым решением, по разным причинам, к примеру у кого то платные компоненты и нет возможности обновиться до актуальных версий.
    Ниже представлен перевод статьи. В конце будет ссылка на оригинал.
    Приведенное здесь решение нацелено на обновление функции 'dlopen' в файле 'ICU.inc' (он включен в файл 'System.pas'). Вот шаги, необходимые для решения указанной проблемы:
    Откройте проводник и перейдите в папку по следующему пути: C:\Program Files (x86)\Embarcadero\Studio\20.0\source Скопируйте файлы из архива "missing_source_files.zip", который приложен в посту, в папку source из пункта "1" (комментарий от переводчика: в "missing_source_files.zip" лежит папка "rtl" в которой две папки - "posix", "sys". Лично я сделал сначала backup папки rtl из папки source, что и вам советую. Затем скопировал rtl папку из "missing_source_files.zip" и вставил в папку source) Переходим по пути: C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\sys Открываем файл "ICU.inc" в текстовом редакторе (пожалуйста, сделайте backup файла 'ICU.inc' для пущей безопасности). (комментарий от переводчика: орудовать в этой папке без прав админа не вариант. Поэтому я советую сначала скопировать файл "ICU.inc" куда нибудь в другое место, к примеру в папку Documents и там уже открыть его в том же Блокноте и сделав необходимые изменения сохранить файл и затем уже переместить его в C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\sys с заменой) В текстовом редакторе надо изменить функцию InitICU:
    Было вот так: А сделать надо что было вот так:
     


     
    Сохраняем сделанные изменения в файле "ICU.inc"
    Возвращаемся в проводник и переходим в папку %USERPROFILE%
    Скопируйте файл "build.bat" из архива "build_script.zip" , который приложен в этому посту в папку из пункта 7.
    Запустите от имени Администратора файл "build.bat". (Он создаст папку %USERPROFILE%\build в которой будет несколько папок с файлами. Из них нам нужны будут только System.o, но об этом ниже)
    Возвращаемся в проводник и переходим в папку C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android\debug
    Скопируйте файл "System.o" из папки %USERPROFILE%\build\android\debug в папку из шага 10 (не забывайте сделать backup всех файл что вы заменяете, на всякий случай).
    Теперь переходим в проводник в папку C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android\release
    Скопируйте файл "System.o" из папки %USERPROFILE%\build\android\release в папку из шага 12 (не забывайте сделать backup всех файл что вы заменяете, на всякий случай).
    Переходим в проводник в папку C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android64\debug
    Скопируйте файл "System.o" из папки %USERPROFILE%\build\android64\debug  в папку из шага 14 (не забывайте сделать backup всех файл что вы заменяете, на всякий случай).
    Переходим в проводник в папку C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android64\release
    Скопируйте файл "System.o" из папки %USERPROFILE%\build\android64\release в папку из шага 16 (не забывайте сделать backup всех файл что вы заменяете, на всякий случай).
     
    На этом всё. Автор данного перевода лично прошел по всем шагам и сделал всё как было сказано, а также протестил на приложении что уже было в PlayMarket'е но не запускалось под Android 10. Я его обновил и запустил как на Android ниже 10, так и на Android 10. 

    ЕСЛИ ВЫ НЕ ДОВЕРЯЕТЕ ПЕРЕВОДУ И/ИЛИ ВЫЛОЖЕННЫМ ФАЙЛАМ, ТО НИЖЕ ДАНА ССЫЛКА НА ОРИГИНАЛ СТАТЬИ
    // файлы выложенные здесь, взяты с форума где оригинал статьи.

    Ссылка на оригинал https://quality.embarcadero.com/browse/RSP-27218
    Если нет логина, то под споллером скрины экрана с форума ссылки выше:
     
     
    Отдельное спасибо пользователю Stanislau Ihnatovich за сообщение в Telegram о том что есть решение
     
    build_script.zipmissing_source_files.zip
     
  2. Thanks
    IgorK11 получил реакцию от gonzales в При публикации приложения на AppleStore вылезает ошибка - В каталог объектов xcode необходимо добавить значок приложения с разрешением 1024*1024 пикселей   
    набросал подробную инструкцию как делал на 10.3 собрав инфу с комментариев:
    !!! Иконки в AppIcon.appiconset должны быть без прозрачности и альфа-канала, иначе получите ошибку ITMS-90717:Invalid App Store Icon.
    1. распаковываем iOS1024fix.zip
    2. заменяем иконки в asset_catalog\Assets.xcassets\AppIcon.appiconset\ и asset_catalog\Assets.xcassets\LaunchScreenImage.imageset\
    3. если надо меняем цвет фона в asset_catalog\Assets.xcassets\LaunchScreenBackgroundColor.colorset\Contents.json
    4. копируем папку asset_catalog на мак
    5. в терминале перейти в неё, если скопировали на рабочий стол команда:
    cd desktop/asset_catalog 6. выполняем команду:
    actool --output-format human-readable-text --notices --warnings --app-icon AppIcon --output-partial-info-plist compilation_results/partial_Info.plist --target-device iphone --target-device ipad --minimum-deployment-target 11.0 --platform iphoneos --product-type com.apple.product-type.application --compile "compilation_results" "Assets.xcassets" в asset_catalog\compilation_results появятся 4 файла
    7. копируем папку (или эти 4 файла) обратно c мака
    8. в delphi компилируем ipa (Release / iOS Device 64-bit / Application Store)
    9. Для удобства создадим папку "ios1024" в папке проекта
    10. копируем файл iOSDevice64\Release\<ИмяПроекта>.Info.plist в папку "ios1024" убрав из имени "<ИмяПроекта>.", имя файла должно быть "Info.plist", регистр важен!
    11. копируем из asset_catalog\compilation_results 4 файла в папку "ios1024"
    12. копируем папку LaunchScreen.storyboardc в "ios1024" (именно папку а не её содержимое)
    13. Редактируем Info.plist
    13.1. Меняем:
    <key>CFBundleIconFiles</key> <array> <string>ios_app_ico57</string> <string>ios_app_ico87</string> <string>ios_app_ico114</string> <string>ios_app_ico1024</string> <string>ios_app_ico60</string> <string>ios_app_ico120</string> <string>ios_app_ico180</string> <string>ios_spot_29</string> <string>ios_spot_40</string> <string>ios_spot_58</string> <string>ios_spot_80</string> <string>ios_spot_120</string> </array> на
    <key>CFBundleIcons</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon60x60</string> </array> <key>CFBundleIconName</key> <string>AppIcon</string> </dict> </dict> <key>CFBundleIcons~ipad</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon60x60</string> <string>AppIcon76x76</string> </array> <key>CFBundleIconName</key> <string>AppIcon</string> </dict> </dict> 13.2. Удаляем в двух местах строки:
    <key>CFBundleResourceSpecification</key> <string>ResourceRules.plist</string> 13.3. После строк:
    <key>DTPlatformName</key> <string>iphoneos</string> добавляем:
    <key>DTPlatformVersion</key> <string>13.5</string> 14. Заходим в delphi->Project->Deploment
    15. Проверяем что бы выбран "iOS Device 64-bit"
    16. Снимаем галочки с: (имена файлов будут ваши, ориентируйтесь по Option->Application->Icons)
    17. в Deploment добавляем все файлы папки "ios1024"
    18. изменяем Remote Path 5-и строкам:
    19. компилируем IPA и отправляем через Transporter на маке
    !!! При изменении версии билда в проекте не забываем изменить его в CFBundleVersion "ios1024"\Info.plist
     
    iOS1024fix.zip
  3. Like
    IgorK11 получил реакцию от Barbanel в При публикации приложения на AppleStore вылезает ошибка - В каталог объектов xcode необходимо добавить значок приложения с разрешением 1024*1024 пикселей   
    набросал подробную инструкцию как делал на 10.3 собрав инфу с комментариев:
    !!! Иконки в AppIcon.appiconset должны быть без прозрачности и альфа-канала, иначе получите ошибку ITMS-90717:Invalid App Store Icon.
    1. распаковываем iOS1024fix.zip
    2. заменяем иконки в asset_catalog\Assets.xcassets\AppIcon.appiconset\ и asset_catalog\Assets.xcassets\LaunchScreenImage.imageset\
    3. если надо меняем цвет фона в asset_catalog\Assets.xcassets\LaunchScreenBackgroundColor.colorset\Contents.json
    4. копируем папку asset_catalog на мак
    5. в терминале перейти в неё, если скопировали на рабочий стол команда:
    cd desktop/asset_catalog 6. выполняем команду:
    actool --output-format human-readable-text --notices --warnings --app-icon AppIcon --output-partial-info-plist compilation_results/partial_Info.plist --target-device iphone --target-device ipad --minimum-deployment-target 11.0 --platform iphoneos --product-type com.apple.product-type.application --compile "compilation_results" "Assets.xcassets" в asset_catalog\compilation_results появятся 4 файла
    7. копируем папку (или эти 4 файла) обратно c мака
    8. в delphi компилируем ipa (Release / iOS Device 64-bit / Application Store)
    9. Для удобства создадим папку "ios1024" в папке проекта
    10. копируем файл iOSDevice64\Release\<ИмяПроекта>.Info.plist в папку "ios1024" убрав из имени "<ИмяПроекта>.", имя файла должно быть "Info.plist", регистр важен!
    11. копируем из asset_catalog\compilation_results 4 файла в папку "ios1024"
    12. копируем папку LaunchScreen.storyboardc в "ios1024" (именно папку а не её содержимое)
    13. Редактируем Info.plist
    13.1. Меняем:
    <key>CFBundleIconFiles</key> <array> <string>ios_app_ico57</string> <string>ios_app_ico87</string> <string>ios_app_ico114</string> <string>ios_app_ico1024</string> <string>ios_app_ico60</string> <string>ios_app_ico120</string> <string>ios_app_ico180</string> <string>ios_spot_29</string> <string>ios_spot_40</string> <string>ios_spot_58</string> <string>ios_spot_80</string> <string>ios_spot_120</string> </array> на
    <key>CFBundleIcons</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon60x60</string> </array> <key>CFBundleIconName</key> <string>AppIcon</string> </dict> </dict> <key>CFBundleIcons~ipad</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon60x60</string> <string>AppIcon76x76</string> </array> <key>CFBundleIconName</key> <string>AppIcon</string> </dict> </dict> 13.2. Удаляем в двух местах строки:
    <key>CFBundleResourceSpecification</key> <string>ResourceRules.plist</string> 13.3. После строк:
    <key>DTPlatformName</key> <string>iphoneos</string> добавляем:
    <key>DTPlatformVersion</key> <string>13.5</string> 14. Заходим в delphi->Project->Deploment
    15. Проверяем что бы выбран "iOS Device 64-bit"
    16. Снимаем галочки с: (имена файлов будут ваши, ориентируйтесь по Option->Application->Icons)
    17. в Deploment добавляем все файлы папки "ios1024"
    18. изменяем Remote Path 5-и строкам:
    19. компилируем IPA и отправляем через Transporter на маке
    !!! При изменении версии билда в проекте не забываем изменить его в CFBundleVersion "ios1024"\Info.plist
     
    iOS1024fix.zip
  4. Thanks
    IgorK11 получил реакцию от Ingalime в При публикации приложения на AppleStore вылезает ошибка - В каталог объектов xcode необходимо добавить значок приложения с разрешением 1024*1024 пикселей   
    набросал подробную инструкцию как делал на 10.3 собрав инфу с комментариев:
    !!! Иконки в AppIcon.appiconset должны быть без прозрачности и альфа-канала, иначе получите ошибку ITMS-90717:Invalid App Store Icon.
    1. распаковываем iOS1024fix.zip
    2. заменяем иконки в asset_catalog\Assets.xcassets\AppIcon.appiconset\ и asset_catalog\Assets.xcassets\LaunchScreenImage.imageset\
    3. если надо меняем цвет фона в asset_catalog\Assets.xcassets\LaunchScreenBackgroundColor.colorset\Contents.json
    4. копируем папку asset_catalog на мак
    5. в терминале перейти в неё, если скопировали на рабочий стол команда:
    cd desktop/asset_catalog 6. выполняем команду:
    actool --output-format human-readable-text --notices --warnings --app-icon AppIcon --output-partial-info-plist compilation_results/partial_Info.plist --target-device iphone --target-device ipad --minimum-deployment-target 11.0 --platform iphoneos --product-type com.apple.product-type.application --compile "compilation_results" "Assets.xcassets" в asset_catalog\compilation_results появятся 4 файла
    7. копируем папку (или эти 4 файла) обратно c мака
    8. в delphi компилируем ipa (Release / iOS Device 64-bit / Application Store)
    9. Для удобства создадим папку "ios1024" в папке проекта
    10. копируем файл iOSDevice64\Release\<ИмяПроекта>.Info.plist в папку "ios1024" убрав из имени "<ИмяПроекта>.", имя файла должно быть "Info.plist", регистр важен!
    11. копируем из asset_catalog\compilation_results 4 файла в папку "ios1024"
    12. копируем папку LaunchScreen.storyboardc в "ios1024" (именно папку а не её содержимое)
    13. Редактируем Info.plist
    13.1. Меняем:
    <key>CFBundleIconFiles</key> <array> <string>ios_app_ico57</string> <string>ios_app_ico87</string> <string>ios_app_ico114</string> <string>ios_app_ico1024</string> <string>ios_app_ico60</string> <string>ios_app_ico120</string> <string>ios_app_ico180</string> <string>ios_spot_29</string> <string>ios_spot_40</string> <string>ios_spot_58</string> <string>ios_spot_80</string> <string>ios_spot_120</string> </array> на
    <key>CFBundleIcons</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon60x60</string> </array> <key>CFBundleIconName</key> <string>AppIcon</string> </dict> </dict> <key>CFBundleIcons~ipad</key> <dict> <key>CFBundlePrimaryIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>AppIcon60x60</string> <string>AppIcon76x76</string> </array> <key>CFBundleIconName</key> <string>AppIcon</string> </dict> </dict> 13.2. Удаляем в двух местах строки:
    <key>CFBundleResourceSpecification</key> <string>ResourceRules.plist</string> 13.3. После строк:
    <key>DTPlatformName</key> <string>iphoneos</string> добавляем:
    <key>DTPlatformVersion</key> <string>13.5</string> 14. Заходим в delphi->Project->Deploment
    15. Проверяем что бы выбран "iOS Device 64-bit"
    16. Снимаем галочки с: (имена файлов будут ваши, ориентируйтесь по Option->Application->Icons)
    17. в Deploment добавляем все файлы папки "ios1024"
    18. изменяем Remote Path 5-и строкам:
    19. компилируем IPA и отправляем через Transporter на маке
    !!! При изменении версии билда в проекте не забываем изменить его в CFBundleVersion "ios1024"\Info.plist
     
    iOS1024fix.zip
×
×
  • Создать...