为什么未签名的xcarchive大于已签名的?

时间:2019-05-09 11:31:16

标签: ios swift xcode xcodebuild

我使用以下命令生成已签名 xcarchive:

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

要构建 unsigned xcarchive,我只需在末尾附加:

CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

我很好奇为什么未签名的xcarchive具有332 MB和222 MB的签名?

我发现,例如,签名的xcarchive中的libswiftCore.dylib仅23.3 MB,而未签名的9 {3}中的CocoaPods。奇怪。

  • Xcode 10.2.1
  • 雨燕4
  • 部署目标:10.0
  • 使用Alamofire
  • 其他依赖项:currentProjectChanged

Difference

1 个答案:

答案 0 :(得分:0)

在通过使用f3比较每个构建的输出进行进一步研究之后,我发现对于签名构建opendiff在每个xcodebuild上运行bitcode_strip会大大减小大小。

这就是为什么这两个版本之间存在大小差异的原因。

要在运行未签名的构建dylib的情况下更具体:

  

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

,并且没有参数xcodebuild时,它不会剥离位码。来自构建输出的消息:

  

忽略--strip-bitcode,因为未传递--sign

因此,这似乎是--sign的预期行为。