繁体   English   中英

Xcode如何设置EXPANDED_CODE_SIGN_IDENTITY?

[英]How does Xcode set EXPANDED_CODE_SIGN_IDENTITY?

证书过期后,我开始收到代码签名错误。 我有一个更新的证书,过期的证书已被删除。 但是以某种方式,Xcode使用过期证书的SHA-1设置EXPANDED_CODE_SIGN_IDENTITY。 它在哪里得到这个价值? 我认为它必须被缓存在某个地方,因为在钥匙串中没有试图用于代码签名的SHA-1证书。 我搜索了pbxproj文件,但没有找到它,也没有从项目根目录开始的递归grep产生任何结果。

以下是有关我的配置的一些详细信息:

  • 在Xcode中没有设置帐户
  • 我使用的是团队代理导出的证书,而不是开发者帐户
  • Xcode版本是6.1.1
  • OSX版本是10.10.2

项目标识是在Xcode中设置的,如下所示: 在此处输入图片说明

当我检查钥匙串时,它会找到正确的身份:

$ security find-identity -p code signing
Policy: Code Signing
  Matching identities
  1) F1326572E0B71C3C8442805230CB4B33B708A2E2 "iPhone Developer: XXX XXX (C395QGL4DK)"

在构建输出中,我看到环境变量设置不正确:

    export EXPANDED_CODE_SIGN_IDENTITY=9F5616A53464FC5C003847ED620357A7BC72ABB1

我试图用以下方法修复它:

  • 从“钥匙串访问”中删除证书,然后重新添加
  • 设置私钥的访问控制以允许所有应用
  • 删除所有配置文件,然后重新添加我正在使用的配置文件
  • 删除〜/ Library / Developer / Xcode / DerivedData下的所有内容
  • 删除〜/ Library / Caches / com.apple.dt.Xcode下的所有内容
  • 重新启动Xcode
  • 重新启动Mac

我现在没有足够的想法去尝试。 我还有另外两个开发人员,他们最初都遇到了相同的问题。 但是,在执行一些我尝试过的相同步骤之后,他们仍在重新工作。 我们都使用相同的证书,相同的配置文件和相同的项目设置。 它必须是系统上的设置或持久缓存,但是我找不到它。

如果我可以找到Xcode在哪里设置此环境变量,则可以清理它,一切都应该可以了。

我遇到了同样的问题,对我来说答案很简单:我试图使用与旧证书绑定的配置文件(我猜是从您要使用的配置文件中提取EXPANDED_CODE_SIGN_IDENTITY)。

无论如何,在与新证书绑定的开发中心上创建新的配置文件后,这种情况就停止了。

如果有帮助,我正在使用jenkins来构建应用程序,因此所有命令都从控制台运行...因此,我已关闭CODE_SIGNING_ALLOWED并“覆盖”了EXPANDED_CODE_SIGN_IDENTITY_NAME和EXPANDED_CODE_SIGN_IDENTITY。 由于某种原因,它帮助我构建了具有适当身份的应用。

xcodebuild -project my.xcodeproj/ -sdk iphoneos \
CODE_SIGNING_REQUIRED=YES \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGN_IDENTITY="My Identity" \
EXPANDED_CODE_SIGN_IDENTITY_NAME="My Identity" \
EXPANDED_CODE_SIGN_IDENTITY=<CODE_SIGN_IDENTITY>

最后一个可以用

security find-certificate -a -c "My Identity" -Z|grep ^SHA-1|cut -d " " -f3|uniq

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM