为 Xamarin iOS 应用程序自动发布 CI [关闭]

Posted

技术标签:

【中文标题】为 Xamarin iOS 应用程序自动发布 CI [关闭]【英文标题】:Automate CI release for Xamarin iOS app [closed] 【发布时间】:2016-06-28 15:06:40 【问题描述】:

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

谢谢。

【问题讨论】:

【参考方案1】:

为此,我使用了fastlane tools、cake build 和cake.xamarin。蛋糕被用来代替gym。 Cake 允许您在没有 fastlane 的任何一个平台上构建,因为提供了 bash 和 powershell 脚本。 More cake Xamarin info.

要构建 android,请查看 AndroidPackage。它将构建发布并创建、签名和压缩 apk。

要构建 iOS,请查看 DotNetBuild。 PlatformTargetBuildIpaCodesignKeyCodesignProvision可以使用settings.WithProperty("arg","value")传递。

一旦蛋糕构建脚本开始工作,它们就可以在车道而不是健身房中使用:sh ".././build.sh -s \"../build.cake\" -t \"iOS\""

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

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

更新:

    在 VSTS 和 Xamarin.iOS 中使用 fastlane 吗?

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

    当您说您的构建工作没有快速通道或蛋糕时,您是否也让它用于发布管理?

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

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

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

【讨论】:

我将 VSTS 与 MacInCloud 一起使用。您能否更具体地说明一下您是如何做到的 1. 使用 VSTS 和 Xamarin.iOS 的快速通道?我虽然 Fastlane 不支持 Xamarin。 2. 当你说你的构建工作没有快速通道或蛋糕时,你是否也让它用于发布管理?使用 VSTS 我可以成功构建,但我想自动发布直到应用商店。 德里克,我是新手,请多多包涵。 1.你能告诉我你是如何通过VSTS添加宇宙飞船、飞行员和其他各种工具的吗??我没有在市场上找到任何特殊步骤或插件来添加它们。 2.你是什么意思有单独的lane-call them-Call that from VSTS?我怎样才能做到这一点? @Derek,你有关于使用 Jenkins with cake 构建 xamarin android 和 ios 的任何信息吗? 一旦你能够用 cake 构建,你应该可以使用任何工具,因为你只是调用 fastlane,它调用 cake,或者 cake 本身。 blog.zuehlke.com/en/…【参考方案2】:

看看 Bitrise.io。一个月前我在博客上写过这篇文章here,我强烈推荐它。

【讨论】:

您能否添加一个如何使用它的示例 查看他的博客。它的设置步骤非常简单。

以上是关于为 Xamarin iOS 应用程序自动发布 CI [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单中是不是有相当于 iOS 的动态系统颜色?

Xamarin:AVPlayer 在 iOS 13 上自动关闭

Xamarin自动化测试ios。无法启动DeviceAgent ExitCode:65

Xamarin.iOS CocoaPods基本使用

永久允许 Xamarin iOS 应用接受传入连接(Xamarin 测试云代理)

iOS之深入解析CocoaPods的GitLab CI与组件自动化构建与发布