使用新的Sierra更新缓慢的应用程序编译

时间:2016-10-26 09:01:21

标签: xcode cocoapods keychain macos-sierra

当我将mac更新到macOS Sierra 10.12.1时,在真实设备上运行应用程序的时间显着增加。 “运行自定义脚本'Embed Pods Frameworks'”和“复制Swift标准库”需要30多分钟才能构建。

有人面临同样的问题吗?

4 个答案:

答案 0 :(得分:31)

检查您的钥匙串。在更新到Sierra到10.12.1之后,我有一份我的证书超过500份,还有一些其他人被复制了几百次。

我删除了所有副本,并且只保留了其中一个,我的代码签名时间从每个框架30秒减少到每个约1秒。

我不知道证书是如何或为何重复,但问题的时间安排表明它是由于更新了Sierra。

答案 1 :(得分:23)

2017-03-23更新

您可以跳过安装CocoaPods的beta版本,因为COCOAPODS_PARALLEL_CODE_SIGN标志也会在当前版本构建中进行评估。

原始答案

找到一种替代解决方案,不是最好的,但至少它正在加速。 它(适合我)

Cocoapods几天前发布了新的测试版。

允许在运行嵌入式框架脚本时进行并行代码签名 (https://github.com/CocoaPods/CocoaPods/pull/6088#issuecomment-257441733

  1. 安装最新的测试版
  2. gem install cocoapods --pre

    1. 转到Xcode目标构建设置,然后点击顶部的+图标
    2. enter image description here

      1. COCOAPODS_PARALLEL_CODE_SIGN设为true
      2. enter image description here

        享受提高的建筑速度!

答案 2 :(得分:15)

如果钥匙串看起来不错,但存在问题 - 请检查首选项并删除此文件中的所有重复项: ~/Library/Preferences/com.apple.security.plist

对于典型设置,此文件必须只包含一个带登录密钥链参考的记录。

答案 3 :(得分:0)

上述所有方法对我都没有用。帮助很大的是<buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments></arguments> </buildCommand> ,其大小为25 MB。这加快了CI系统的构建时间,最高可达40%。

<强>分析

resetting the System.keychain

重置

du -h /Library/Keychains/System.keychain
good: 60K
bad: 25MB

注意:如果您的System.keychain中存储了重要的密钥/证书/密码,您可能希望在执行重置之前导出它们,然后根据需要重新导入它们。这对我来说并不是必需的。我的新System.keychain没有内容,建设项目工作得很好。