Почему неподписанный xcarchive больше, чем подписанный? - PullRequest
4 голосов
/ 09 мая 2019

Я использую следующую команду для генерации со знаком xcarchive:

xcodebuild -workspace app.xcworkspace -scheme app -configuration 'Release' -sdk iphoneos archive -archivePath build/signed.xcarchive

для сборки без знака xcarchive Я просто добавляю в конце:

CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

И мне любопытно, почему неподписанный xcarchive имеет 332 МБ и 222 МБ?

Я обнаружил, что, например, libswiftCore.dylib в подписанном xcarchive имеет только 23,3 МБ, а в неподписанном - 95,4 МБ.Странный.

  • Xcode 10.2.1
  • Swift 4
  • Цель развертывания: 10.0
  • Использование CocoaPods
  • Дополнительные зависимости:Alamofire

Difference

1 Ответ

0 голосов
/ 09 мая 2019

После дальнейшего изучения, сравнивая выходные данные каждой сборки с использованием opendiff, я обнаружил, что для подписанной сборки xcodebuild запускает bitcode_strip на каждом dylib, что значительно уменьшает размер.

Вот почему между этими двумя сборками есть разница в размерах.

Чтобы быть более точным в случае неподписанной сборки, xcodebuild выполняется:

builtin-swiftStdLibTool --copy --verbose ...

и без параметра --sign не удаляет битовый код.Сообщение из вывода сборки:

Игнорирование --strip-bitcode из-за того, что --sign не был передан

Поэтому, похоже, это предполагаемое поведение xcodebuild.

...