使用新的 Sierra 更新缓慢的应用程序编译
Slow app compilation with new Sierra update
当我将 mac 更新为 macOS Sierra 10.12.1 时,运行 应用程序在真实设备上的使用时间显着增加。
"Run custom script 'Embed Pods Frameworks'" 和 "Copy Swift standard libraries" 需要 30 分钟以上的时间来构建。
有人遇到同样的问题吗?
检查您的钥匙串。将 Sierra 更新到 10.12.1 后,我的一份证书有 500 多份副本,还有一些证书被复制了数百次。
我删除了所有重复项并只保留了一个,我的代码签名时间从每个框架 30 秒减少到每个框架 1 秒左右。
我不知道证书是如何或为什么重复的,但问题的时间表明这是由于更新 Sierra。
2017-03-23更新
您可以跳过安装 Beta 版 CocoaPods,因为 COCOAPODS_PARALLEL_CODE_SIGN
标志也在当前版本中评估。
原答案
找到了替代解决方案,不是最好的,但至少它正在加速。
它有效(对我来说)
Cocoapods 日前发布了新的测试版。
当 运行 嵌入框架脚本时允许并行代码签名
(https://github.com/CocoaPods/CocoaPods/pull/6088#issuecomment-257441733)
- 安装最新的测试版
gem install cocoapods --pre
- 转到 Xcode 目标构建设置并单击顶部的
+
图标
- 将
COCOAPODS_PARALLEL_CODE_SIGN
设置为true
并享受提高的构建速度!
如果钥匙串看起来不错,但存在问题 – 检查首选项并删除此文件中的所有重复项:
~/Library/Preferences/com.apple.security.plist
对于典型设置,此文件必须仅包含一个带有登录钥匙串引用的记录。
上面提到的所有方法都不适合我。有很大帮助的是 resetting the System.keychain
,它有 25 MB 的大小。这在我们的 CI 系统上将构建时间最多缩短了 40%。
分析
du -h /Library/Keychains/System.keychain
good: 60K
bad: 25MB
重置
sudo systemkeychain -vfcC [password]
注意:如果您的 System.keychain 中存储了重要的 keys/certs/passwords,您可能需要在执行重置之前导出它们,然后根据需要重新导入它们。这对我来说没有必要。我的新 System.keychain 没有任何内容,构建项目绝对正常。
当我将 mac 更新为 macOS Sierra 10.12.1 时,运行 应用程序在真实设备上的使用时间显着增加。 "Run custom script 'Embed Pods Frameworks'" 和 "Copy Swift standard libraries" 需要 30 分钟以上的时间来构建。
有人遇到同样的问题吗?
检查您的钥匙串。将 Sierra 更新到 10.12.1 后,我的一份证书有 500 多份副本,还有一些证书被复制了数百次。
我删除了所有重复项并只保留了一个,我的代码签名时间从每个框架 30 秒减少到每个框架 1 秒左右。
我不知道证书是如何或为什么重复的,但问题的时间表明这是由于更新 Sierra。
2017-03-23更新
您可以跳过安装 Beta 版 CocoaPods,因为 COCOAPODS_PARALLEL_CODE_SIGN
标志也在当前版本中评估。
原答案
找到了替代解决方案,不是最好的,但至少它正在加速。 它有效(对我来说)
Cocoapods 日前发布了新的测试版。
当 运行 嵌入框架脚本时允许并行代码签名 (https://github.com/CocoaPods/CocoaPods/pull/6088#issuecomment-257441733)
- 安装最新的测试版
gem install cocoapods --pre
- 转到 Xcode 目标构建设置并单击顶部的
+
图标
- 将
COCOAPODS_PARALLEL_CODE_SIGN
设置为true
并享受提高的构建速度!
如果钥匙串看起来不错,但存在问题 – 检查首选项并删除此文件中的所有重复项:
~/Library/Preferences/com.apple.security.plist
对于典型设置,此文件必须仅包含一个带有登录钥匙串引用的记录。
上面提到的所有方法都不适合我。有很大帮助的是 resetting the System.keychain
,它有 25 MB 的大小。这在我们的 CI 系统上将构建时间最多缩短了 40%。
分析
du -h /Library/Keychains/System.keychain
good: 60K
bad: 25MB
重置
sudo systemkeychain -vfcC [password]
注意:如果您的 System.keychain 中存储了重要的 keys/certs/passwords,您可能需要在执行重置之前导出它们,然后根据需要重新导入它们。这对我来说没有必要。我的新 System.keychain 没有任何内容,构建项目绝对正常。