[英]Xcode 6.0.1 - error: CODE_SIGNING_REQUIRED=YES but EXPANDED_CODE_SIGN_IDENTITY is unset or empty
[英]How does Xcode set EXPANDED_CODE_SIGN_IDENTITY?
证书过期后,我开始收到代码签名错误。 我有一个更新的证书,过期的证书已被删除。 但是以某种方式,Xcode使用过期证书的SHA-1设置EXPANDED_CODE_SIGN_IDENTITY。 它在哪里得到这个价值? 我认为它必须被缓存在某个地方,因为在钥匙串中没有试图用于代码签名的SHA-1证书。 我搜索了pbxproj文件,但没有找到它,也没有从项目根目录开始的递归grep产生任何结果。
以下是有关我的配置的一些详细信息:
项目标识是在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
我试图用以下方法修复它:
我现在没有足够的想法去尝试。 我还有另外两个开发人员,他们最初都遇到了相同的问题。 但是,在执行一些我尝试过的相同步骤之后,他们仍在重新工作。 我们都使用相同的证书,相同的配置文件和相同的项目设置。 它必须是系统上的设置或持久缓存,但是我找不到它。
如果我可以找到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.