栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Jenkins-Xcode构建作品CodeSign失败

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jenkins-Xcode构建作品CodeSign失败

我们不使用Jenkins,但是我之前在构建自动化中已经看到了这一点。解决方法如下:

1)创建构建钥匙串。这将包含用于代码签名的私钥/证书:

security create-keychain -p [keychain_password] MyKeychain.keychain

keychain_password由您决定。您稍后将使用它在构建过程中解锁钥匙串。

2)导入您的CodeSign身份的私钥(* .p12):

security import MyPrivateKey.p12 -t agg -k MyKeychain.keychain -P [p12_Password] -A

此处的关键是“ -A”标志。这将允许在没有警告的情况下访问钥匙串。这就是为什么您看到“不允许用户交互”错误的原因。如果您尝试通过Xpre
UI进行此构建,则这将提示您“允许访问”钥匙串。

3)但是,您要保存钥匙串(例如:将其签入源代码管理),请确保您的构建用户可写和可执行该钥匙串。

准备好构建时,请在运行xprebuild之前添加以下内容:

# Switch keychainsecurity list-keychains -s "/path/to/MyKeyhain.keychain"security default-keychain -s "/path/to/MyKeychain.keychain"security unlock-keychain -p "[keychain_password]" "/path/to/MyKeychain.keychain"

如果您在本地运行,则可能需要在构建脚本的末尾添加一些内容,以切换回登录钥匙串(〜/ Library / Keychains /
login.keychain),例如:

# Switch back to login keychainsecurity list-keychains -s "~/Library/Keychains/login.keychain"security default-keychain -s "~/Library/Keychains/login.keychain"

试试看。我们为我们使用的每个身份创建一个单独的钥匙串(我们自己的代表客户构建)。就我们公司而言,我们同时拥有一个AppStore和Enterprise帐户。这可能会导致在代码签名时发生命名冲突(例如:两个帐户都解析为“
iPhone发行版:ACME Corporation”)。通过将这些身份保存在单独的钥匙串中,我们避免了这种冲突。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号