我正在通过commad行从MyApp.xcodeproj构建MyApp.ipa,并且构建成功。我正在使用Shenzhen ruby gem从命令行构建应用程序。但是,Jenkins的构建失败并出现以下错误:
*** error: Couldn't codesign /Users/administrator/Library/Developer/Xcode/DerivedData///////MyApp.app/Frameworks/libswiftCore.dylib: codesign failed with exit code 1
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-stdlib-tool failed with exit code 1
** ARCHIVE FAILED **
以下构建命令失败:
CopySwiftLibs /Users/administrator/Library/Developer/Xcode/DerivedData///////MyApp.app
我怀疑错误与项目签名有关。目前我通过命令行使用XSigning对其进行签名,并通过本地MacOS计算机上的命令行成功构建。但是,当我通过Jenkins运行完全相同的命令时,它失败了。
请帮忙。
答案 0 :(得分:2)
假设您的Jenkins构建在您通过命令行测试的同一台机器上运行:
codesign
要求配置文件签署IPA。默认情况下,这些位于~/Library/MobileDevice/Provisioning Profiles
。
如您所见,~
是用户的主目录,即/Users/user_name_here/
。该目录的默认权限通常只允许访问该用户。
Jenkins默认运行为jenkins
用户。您需要确保您的jenkins
用户有权访问配置文件所在的目录。或者,将配置文件移动到jenkins
用户有权访问的另一个位置,并修改您的构建工具以在那里查找它们。
如果您的Jenkins主/从节点与使用命令行测试的Mac计算机不在同一台Mac计算机上,则您必须手动将配置文件复制到该计算机上
答案 1 :(得分:2)
解决此问题的最佳方法:将您尝试签名的证书/密钥从“登录”移至Keychain Access中的“系统”。您无需继续解锁钥匙串。
答案 2 :(得分:0)
我怀疑您的$path
或其他环境变量存在问题(这是一个常见问题,看起来与您的一样)。