【jenkins】ios build failed:enterprise Certificate Signature invalid

1、问题现象

1.1、** EXPORT FAILED **

image2017-11-30%2013%3A49%3A7.png?versio

1.2、** ARCHIVE FAILED **

image2017-11-30%2013%3A50%3A44.png?versi


2、问题分析&定位

2.1、从Console log来看,应该是iOS证书问题导致build failed

2.2、进入官网,查看证书状态,发现证书状态为Invaild(也可使用工具查看:iPhone 配置实用工具.zip

image2018-5-16%2016%3A28%3A48.png?versio

2.3、编辑invaild证书,重新生成新的enterprise证书

image2018-5-16%2016%3A27%3A59.png?versio

3、问题解决步骤

3.1、xcode–accounts,账号拥有以下两个权限

image2017-11-30%2013%3A57%3A54.png?versi

3.2、登录账号,下载profiles

image2018-5-16%2016%3A26%3A56.png?versio

3.3、安装证书(p12)

3.4、安装完证书后,在钥匙串中查看已安装证书

从Apple Member Center网站下载证书到Mac上双击即可安装(当然也可在Xcode中添加开发账号自动同步证书和[生成]配置文件)。证书安装成功后,在KeychainAccess|Keys中展开创建CSR时生成的Key Pair中的私钥前面的箭头,可以查看到包含其对应公钥的证书(Your requested certificate will be the public half of the key pair.);在Keychain Access|Certificates中展开安装的证书(ios_development.cer)前面的箭头,可以看到其对应的私钥。

image2018-5-16%2016%3A30%3A49.png?versio

image2018-5-16%2016%3A32%3A27.png?versio

3.5、进入xcode,点击manage certificates,查看已安装的证书

image2018-5-16%2016%3A33%3A8.png?version

Certificate被配置到【Xcode Target|Build Settings|Code Signing|Code Signing Identity】下,下拉选择Identities from Profile "..."(一般先配置Provisioning Profile)。

Xcode中配置的Code Signing Identity(entitlements、certificate)必须与Provisioning Profile匹配,并且配置的Certificate必须在本机Keychain Access中存在对应Public/Private Key Pair,否则编译会报错。

image2018-5-16%2016%3A34%3A39.png?versio


4、证书配置常见错误

1.no such provisioning profile was found

Xcode Target|Genera|Identity Team下提示"Your build settings specify a provisioning profile with the UUID "xxx",howerver, no such provisioning profile was found."

Xcode Target|BuildSettings|Code Signing|当前配置的指定UDID的provisioning profile在本地不存在,此时需要更改Provisioning Profile。必要时手动去网站下载或重新生成Provisioning Profile或直接在Xcode中Fix issue予以解决(可能自动生成iOS Team ProvisioningProfile)!

2.No identities from profile

Build Settings|CodeSigning的Provisioning Profile中选择了本地安装的provisioning profile之后,Code Signing Identity中下拉提示No identities from profile “…”or No identities from keychain.

Xcode配置指定UDID的provisioning profile中的DeveloperCertificates在本地KeyChain中不存在(No identities are available)或不一致(KeyPair中的Private Key丢失),此时需去网站检查ProvisioningProfile中的App ID-Certificate-Device配置是否正确。如果是别人提供的共享账号(*.developerprofile)或共享证书(*.p12),请确保导出了对应Key Pair中的Private Key。必要时也直接在Xcode中Fix issue予以解决(可能自动生成iOS Team ProvisioningProfile)。

3.Code Signing Entitlements file do not match profile

"Invalid application-identifier Entitlement" or "Code Signing Entitlements file do not match those specified in your provisioning profile.(0xE8008016)."

(1)检查对应版本(Debug)指定的*.entitlements文件中的“Keychain Access Groups”键值是否与ProvisioningProfile中的Entitlements项相吻合(后者一般为前者的Prefix/Seed)。

(2)也可以将Build Settings|Code Signing的Provisioning Profile中对应版本(Debug)的Entitlements置空。

4.Xcode配置反应有时候不那么及时,可刷新、重置相关配置项开关(若有)或重启Xcode试试。


5、参考

iPhone真机调试应用程序》《iOS Developer:真机测试

iOS Development--Certificates, Provisioning Profiles

关于Certificate、Provisioning Profile、App ID的介绍及其关系

数字签名和数字证书》《iOS keyChain 研究

苹果开发者账号那些事儿》《iOS關於Provisioning Profiles這些事

iOS Code Signing 学习笔记》《代码签名探析/Inside Code Signing

iOS Code Signing: 解惑/iOS Code Signing: Under The Hood

iOS行货自动打包》《解决Xcode无法生成Archive的问题》《iOS发布遇到的一些问题

Xcode打包ipa包》《iOS程序生成ipa进行真机测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值