我正在通过命令行从 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 运行完全相同的命令时,它失败了。
请帮忙。
最佳答案
假设您的 Jenkins 构建运行在您通过命令行测试的同一台机器上:
codesign
需要 Provisioning Profiles 来签署 IPA。默认情况下,这些位于此处 ~/Library/MobileDevice/Provisioning Profiles
。
如您所见,~
是用户的主目录,即 /Users/user_name_here/
。该目录的默认权限通常只允许该用户访问。
Jenkins 默认以 jenkins
用户身份运行。您需要确保您的 jenkins
用户有权访问配置文件所在的目录。或者,将供应配置文件移动到 jenkins
用户有权访问的另一个位置,并修改您的构建工具以在那里查找它们。
如果您的 Jenkins 主/从节点与您使用命令行测试的不在同一台 Mac 机器上,那么您也必须手动将配置文件复制到该机器
关于ios - "ipa build"从命令行通过但在Jenkins(深圳Xcode iOS app)上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459492/