为 Xamarin iOS 应用自动化 CI 发布

Automate CI release for Xamarin iOS app

我希望将 Xamarin iOS 应用程序的 CI 构建自动化到 App Store。 VSTS 还没有任何工具。 我尝试使用 fastlane.tools 但它不支持 Xamarin。我可以在 VSTS 中添加任何更好的步骤来自动将 Xamarin iOS 应用程序发布到应用程序商店中吗?

谢谢。

看看 Bitrise.io。我一个月前在博客上讨论过它 here 并且强烈推荐它。

为此,我使用了 fastlane tools, cake build, and cake.xamarin. Cake was used in place of gym. Cake allows you to build on either platform without fastlane since bash and powershell scripts are provided. More cake Xamarin info

要构建 Android 查看 AndroidPackage。它将构建发布并创建、签名和 zipalign apk。

要构建 iOS 查看 DotNetBuildPlatformTargetBuildIpaCodesignKeyCodesignProvision 可以使用 settings.WithProperty("arg","value").

传递

蛋糕构建脚本运行后,它们可以在球道而不是健身房中使用:sh ".././build.sh -s \"../build.cake\" -t \"iOS\""

我不确定你的 vsts 设置,但我使用 vsts-agent 设置了一个 MAC 构建服务器,然后能够将命令行步骤添加到构建定义并调用适当的快车道。所以从定义或命令行构建是一样的。然后可以根据需要将其他内容添加到构建定义中,例如松弛集成等。

最初,我在没有 fastlane 或 cake 的情况下仅使用 vsts 进行构建,但更喜欢能够从命令行构建,然后从构建步骤中调用它。

更新:

  1. Use fastlane with VSTS and Xamarin.iOS ?

Fastlane 工具是用 ruby 编写的,用于自动化操作,例如调用 xcode 进行构建或 google 播放 API 进行部署。 Fastlane 没有专门针对 msbuild 的操作,所以我为此使用了 cake build,因为 cake 中的调用根据平台调用 msbuild 或 xbuild。

  1. When you said you had build working without fast lane or cake, did you also had it working for release management?

如果转到 visualstudio.com 并创建构建定义,则可以 select Xamarin Android 或 iOS 模板,然后填写空白。这些步骤调用 nuget、build、sign 等。cake build 正在做同样的事情。

对于发布管理,可以在构建发生后使用和添加 spaceship, pilot, or supply,或者您可以有一个单独的 "lane" 调用它们并从 vsts 调用它。

更容易让构建工作,然后从命令行玩宇宙飞船、飞行员或补给。然后你可以为它们调整不同的配置文件,让它们按照你喜欢的方式工作,然后将它们添加到一个通道中。