Fastlane 构建未在 VSTS CI 上执行

Posted

技术标签:

【中文标题】Fastlane 构建未在 VSTS CI 上执行【英文标题】:Fastlane build not executed on VSTS CI 【发布时间】:2018-04-17 11:14:04 【问题描述】:

我正在尝试通过 VSTS 持续集成来自动化我的构建过程。 VSTS 附带一个可以为我构建项目的任务,但我已经在本地使用 fastlane,所以我更喜欢在构建服务器上使用它。我创建了一个执行 fastlane 并发布工件的 shell 脚本。我用来构建的命令是:

fastlane gym \
-p "app.xcodeproj" \
-n "app.ipa" \
-c true \
-q "Debug" \
-j "development" \
-i "iPhone Developer: Firstname Lastname" \
-z false \
--verbose

这会产生以下命令:

xcodebuild \
-scheme app-Debug \        
-project app.xcodeproj \
-configuration Debug  \
-destination \
-archivePath /Users/vsts/Library/Developer/Xcode/Archives/2018-04-16/app-debug\ 2018-04-16\ 09.03.03.xcarchive \
clean \
archive \
CODE_SIGN_IDENTITY=iPhone\ Developer:\ Firstname\ Lastname \ tee /Users/vsts/Library/Logs/gym/app-app-Debug.log 

但问题是该命令未执行,并且在 60 分钟后 CI 脚本中止,因为它花费的时间太长。当我使用 VSTS 提供的 Xcode 任务时,它会执行 xcodebuild 命令但签名失败。在这里,我有 VSTS 日志的最后几行: https://pastebin.com/wZqRwmJ3

【问题讨论】:

构建是否为该任务生成任何日志?请问可以在这里分享吗?如果您也可以添加配置构建任务,它可能会很有用 任务没有可见的输出,它只等到 60 分钟到期,然后取消构建。 @RodrigoWerlang 你可以在这里找到日志的最后几行:pastebin.com/wZqRwmJ3 您使用私人代理吗?如果您在构建代理机器上手动调用该命令会产生什么结果?代理是否以交互模式或服务模式与您的帐户一起运行?如果没有,请尝试并检查结果。 @starianchen-MSFT 我曾经使用自托管代理,但现在我想尝试使用“托管 Mac OS 预览”代理。昨天我尝试使用提供的 Xcode 任务,这也失败了。所以我开始认为agent执行xcodebuild有问题。 【参考方案1】:

您应该将此扩展添加到您的 VSTS 环境中,以便与 Fastlane 进行更轻松的交互。 https://github.com/Microsoft/app-store-vsts-extension

README 中有大量文档,我不想在这里复制和粘贴,但基本上你安装 extension from the Azure DevOps Marketplace,然后将其添加为“部署”步骤,并配置几个“安全”环境变量以允许它登录并执行部署。

【讨论】:

已经是一年前了,但据我所知,扩展有一些限制,这就是我编写所有 fastlane 脚本的原因。

以上是关于Fastlane 构建未在 VSTS CI 上执行的主要内容,如果未能解决你的问题,请参考以下文章

使用 VSTS 的 Fastlane 发布到 TestFlight

在VSTS CI Build中执行NPM命令时出错

用于 XCode 的 VSTS CI 为具有手表套件扩展的应用程序构建

Fastlane Scan 的构建过程错过了 Jenkins CI 上的 CocoaPod 框架

如何使用 fastlane 缩短 Flutter iOS 应用的构建时间

如何在 VSTS CI/CD 发送的构建电子邮件中添加 SonarQube 分析报告?