Xcode 8 使用 TeamCity 代码签名的 Fastlane 构建失败,退出代码为 1
Xcode 8 Fastlane build with TeamCity codesign failed with exit code 1
我在 macOS Sierra 上使用 Xcode 8.3.2 时遇到了一个奇怪的严重问题。我可以使用 fastlane 或手动执行命令在构建机器上本地构建应用程序。开发和临时构建都可以在本地创建。
$ fastlane <lane_name>
但是当从 TeamCity 尝试相同的操作时,它会抛出以下错误。
[exec]/usr/bin/codesign --force --sign 5609CEE02FBF256EDBF60DB28C1A2995A2153B5B --entitlements /Users/<username>/Library/Developer/Xcode/DerivedData/<AppName>-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/IntermediateBuildFilesPath/<AppName>.build/Release-iphoneos/<AppName>.build/<AppName>.app.xcent --timestamp=none /Users/<username>/Library/Developer/Xcode/DerivedData/<AppName>-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/InstallationBuildProductsLocation/Applications/<AppName>.app
[exec] /Users/<username>/Library/Developer/Xcode/DerivedData/SabaMeeting-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/InstallationBuildProductsLocation/Applications/<AppName>.app: unknown error -1=ffffffffffffffff
[exec] Command /usr/bin/codesign failed with exit code 1
[exec]
[exec] ** ARCHIVE FAILED **
[exec]
[exec]
[exec] The following build commands failed:
[exec] CodeSign /Users/<username>/Library/Developer/Xcode/DerivedData/SabaMeeting-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/<AppName>/InstallationBuildProductsLocation/Applications/SabaMeeting.app
[exec] (1 failure)
TeamCity 提取代码甚至执行命令但失败。
构建步骤:命令行设置了带有自定义脚本的 TeamCity。
尝试了以下方法但不起作用:
- Xcode 首选项->账户->删除已经添加的账户并重新添加
- 生成了新的分发和开发人员证书并安装在 KeyChain 中。新的配置文件并安装在 Xcode.
- 通过 "Allow all applications to access this item" 验证了对私钥的钥匙串访问。将证书从登录移动到系统,并对所有人进行访问控制。
- 重装xcode8.3.2,重启机器
- 已安装 Apple 全球开发者关系证书颁发机构。
- 应用程序和派生数据目录中不允许存在已验证的资源分叉、查找器信息或类似碎屑。 https://developer.apple.com/library/content/qa/qa1940/_index.html
- 该项目没有使用 CocoaPods。
- 已尝试清除 DerivedData。
还有更多的研发。任何帮助将不胜感激。
你的车道在你的 fastfile 上看起来如何?请分享...
我的猜测;
3 "Allow all applications to access this item" 验证了对私钥的钥匙串访问。将证书从登录移动到系统,并对所有人进行访问控制。
Teamcity 可能无法访问您的证书并失败。
试试这个;
- 将证书移回系统登录。
- 在您的
gym
或正在构建 .ipa 的任何 fastlane 命令之前添加以下内容。这将使 teamcity 解锁并访问钥匙串。
车道:测试版|选项|
unlock_keychain(path:"login.keychain", password:"yoursystempassword")
sh "security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain"
gym(scheme: "yourapp", workspace:"probably you dont have a wokrspace so no need")
end
我在 macOS Sierra 上使用 Xcode 8.3.2 时遇到了一个奇怪的严重问题。我可以使用 fastlane 或手动执行命令在构建机器上本地构建应用程序。开发和临时构建都可以在本地创建。
$ fastlane <lane_name>
但是当从 TeamCity 尝试相同的操作时,它会抛出以下错误。
[exec]/usr/bin/codesign --force --sign 5609CEE02FBF256EDBF60DB28C1A2995A2153B5B --entitlements /Users/<username>/Library/Developer/Xcode/DerivedData/<AppName>-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/IntermediateBuildFilesPath/<AppName>.build/Release-iphoneos/<AppName>.build/<AppName>.app.xcent --timestamp=none /Users/<username>/Library/Developer/Xcode/DerivedData/<AppName>-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/InstallationBuildProductsLocation/Applications/<AppName>.app
[exec] /Users/<username>/Library/Developer/Xcode/DerivedData/SabaMeeting-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/InstallationBuildProductsLocation/Applications/<AppName>.app: unknown error -1=ffffffffffffffff
[exec] Command /usr/bin/codesign failed with exit code 1
[exec]
[exec] ** ARCHIVE FAILED **
[exec]
[exec]
[exec] The following build commands failed:
[exec] CodeSign /Users/<username>/Library/Developer/Xcode/DerivedData/SabaMeeting-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/<AppName>/InstallationBuildProductsLocation/Applications/SabaMeeting.app
[exec] (1 failure)
TeamCity 提取代码甚至执行命令但失败。 构建步骤:命令行设置了带有自定义脚本的 TeamCity。 尝试了以下方法但不起作用:
- Xcode 首选项->账户->删除已经添加的账户并重新添加
- 生成了新的分发和开发人员证书并安装在 KeyChain 中。新的配置文件并安装在 Xcode.
- 通过 "Allow all applications to access this item" 验证了对私钥的钥匙串访问。将证书从登录移动到系统,并对所有人进行访问控制。
- 重装xcode8.3.2,重启机器
- 已安装 Apple 全球开发者关系证书颁发机构。
- 应用程序和派生数据目录中不允许存在已验证的资源分叉、查找器信息或类似碎屑。 https://developer.apple.com/library/content/qa/qa1940/_index.html
- 该项目没有使用 CocoaPods。
- 已尝试清除 DerivedData。
还有更多的研发。任何帮助将不胜感激。
你的车道在你的 fastfile 上看起来如何?请分享...
我的猜测;
3 "Allow all applications to access this item" 验证了对私钥的钥匙串访问。将证书从登录移动到系统,并对所有人进行访问控制。
Teamcity 可能无法访问您的证书并失败。
试试这个;
- 将证书移回系统登录。
- 在您的
gym
或正在构建 .ipa 的任何 fastlane 命令之前添加以下内容。这将使 teamcity 解锁并访问钥匙串。
车道:测试版|选项|
unlock_keychain(path:"login.keychain", password:"yoursystempassword")
sh "security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain"
gym(scheme: "yourapp", workspace:"probably you dont have a wokrspace so no need")
end