ios - "ipa build"从命令行通过但在Jenkins(深圳Xcode iOS app)上失败

标签 ios xcode command-line jenkins ipa

我正在通过命令行从 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/

相关文章:

c - 在 C 中逐字符打印命令行参数

ios - 单击在数组中添加/删除时,Swift Collection View didSelectItemAtIndexPath

ios - 选择器越界异常

javascript - React native 网络连接在 Android 中有效,但在 IOS 中无效

iphone - 'Music' 应用程序中的 UITableView 单元格背景

Javadoc 和自定义 doclet

shell - 如何将文件从一台服务器直接下载到另一台服务器?

ios - 在 swift 4 中添加带计时器的导航栏刷新按钮

ios - 无法将试用应用程序上传到 iPhone 进行测试

iphone - iOS 5 TabBar自定义