Как запретить включение библиотек SwiftSupport в два раза - программирование
Подтвердить что ты не робот

Как запретить включение библиотек SwiftSupport в два раза

Когда мы экспортируем наше приложение Firefox для iOS в файл .ipa, каталог SwiftSupport включается дважды:

./Payload/Client.app/Frameworks/libswiftCore.dylib
./Payload/Client.app/Frameworks/libswiftCoreAudio.dylib
./Payload/Client.app/Frameworks/libswiftCoreGraphics.dylib
./Payload/Client.app/Frameworks/libswiftCoreImage.dylib
./Payload/Client.app/Frameworks/libswiftDarwin.dylib
./Payload/Client.app/Frameworks/libswiftDispatch.dylib
./Payload/Client.app/Frameworks/libswiftFoundation.dylib
./Payload/Client.app/Frameworks/libswiftObjectiveC.dylib
./Payload/Client.app/Frameworks/libswiftSecurity.dylib
./Payload/Client.app/Frameworks/libswiftUIKit.dylib
./SwiftSupport/libswiftCore.dylib
./SwiftSupport/libswiftCoreAudio.dylib
./SwiftSupport/libswiftCoreGraphics.dylib
./SwiftSupport/libswiftCoreImage.dylib
./SwiftSupport/libswiftDarwin.dylib
./SwiftSupport/libswiftDispatch.dylib
./SwiftSupport/libswiftFoundation.dylib
./SwiftSupport/libswiftObjectiveC.dylib
./SwiftSupport/libswiftSecurity.dylib
./SwiftSupport/libswiftUIKit.dylib

Это из файла .ipa, который был создан с профилем деблокирования и экспортирован для распространения в App Store.

Кто-нибудь видел это раньше? Я дважды задавал вопросы на форумах разработчиков Apple без ответов.

4b9b3361

Ответ 1

К сожалению, размер IPA по-прежнему имеет значение для AppleWatch, поскольку он выдает ошибку проверки, если размер превышает допустимый предел в 50 МБ (с включенным раздуванием).

К счастью, установка "Встроенное содержимое содержит Swift" на целевом приложении Apple Watch для НЕТ уменьшило размер Apple Watch на 16,5 МБ и, таким образом, провело проверку.

ПРИМЕЧАНИЕ. Все мое приложение написано в Swift со встроенными фреймворками Swift. Но код находится в расширении WatchKit, а не в приложении!

Я уже спрашивал на форумах, подходит ли это решение или нет, пока нет ответов. Также я уже отправил эту сборку на itunes connect, и теперь она обрабатывает 30 минут (вздох). Отправляйтесь сюда или удалите ответ, если я столкнулся с проблемами с этим подходом.

На скриншоте ниже показано, как приложение WatchKit пропускает папку Frameworks в новом архиве, удаляя 16,5 МБ

введите описание изображения здесь

Ответ 2

В соответствии с технической поддержкой Apple о размере IPA после перехода на Swift 2/iOS9:

Размер libswiftCore.dylib в вашем IPA и размер вашего IPA в целом в наши дни несколько бессмысленны. Новые функции прореживания в магазине удаляют ненужный контент из вашего приложения при доставке на определенные устройства, а libswiftCore.dylib содержит бит-код, даже если ваше приложение этого не делает. Этот биткод удаляется до того, как ваше приложение будет загружено на клиентское устройство.

Несмотря на это, я согласен с Firefox iOS Devs, и я испытываю такую ​​же проблему в App Store.