【jenkins】ios build failed:enterprise Certificate Signature invalid

简介:

1、问题现象

1.1、** EXPORT FAILED **

1.2、** ARCHIVE FAILED **


2、问题分析&定位

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

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


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


3、问题解决步骤

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

3.2、登录账号,下载profiles


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)前面的箭头,可以看到其对应的私钥。



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


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,否则编译会报错。



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进行真机测试

相关文章
|
6月前
|
jenkins Unix 持续交付
个人记录jenkins编译ios过程 xcode是9.4.1
个人记录jenkins编译ios过程 xcode是9.4.1
93 2
|
iOS开发
IOS Pods Failed to connect to www.gstatic.com port 443: Operation timed out
IOS Pods Failed to connect to www.gstatic.com port 443: Operation timed out
88 0
|
3月前
|
iOS开发
IOS编译出现Command PhaseScriptExecution failed with a nonzero exit code
IOS编译出现Command PhaseScriptExecution failed with a nonzero exit code
266 2
|
3月前
|
开发工具 iOS开发
解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app
解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app
142 2
|
开发工具 Android开发 iOS开发
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
使用vs2019学习xamarin时,创建新程序。使用模拟器真机等测试都报错如下图错误: ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-de8ce5fd.png?x-cos-security-token=r4KyZDEowPT0kGTL0LqE8EnwfN1Nzexadb05dcffed3939ff8d7591c528c01706nvpGSE93QwHpZM8NwhJNTZctNRQa0l3KDhEnqj8P7d8t
121 0
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
|
jenkins 持续交付 iOS开发
iOS Jenkins打包报错 rm: Permission denied解决办法
iOS Jenkins打包报错 rm: Permission denied解决办法
284 0
|
jenkins 持续交付 iOS开发
iOS Jenkins打包报错The stickers icon set or app icon set named "AppIcon" did not have any applicable ...
iOS Jenkins打包报错The stickers icon set or app icon set named "AppIcon" did not have any applicable ...
302 0
|
jenkins 持续交付 Go
iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法
iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法
237 0
|
jenkins Unix Shell
Jenkins 利用Build With Parameters Plugin实现Jenkins参数化构建
Jenkins 利用Build With Parameters Plugin实现Jenkins参数化构建
571 0
|
监控 数据可视化 jenkins
iOS开发-Jenkins自动化部署:介绍篇(一)
在构建自动化部署的时候,发布对构建的 流程没有一个完整的思路,太过于碎片化。于是整体梳理了自动化部署的基本流程。
1224 0