ios - Xamarin iOS 应用的自动化 CI 发布

标签 ios xamarin release release-management azure-pipelines-release-pipeline

<分区>


我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。

关闭 6 年前

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

谢谢。

最佳答案

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

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

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

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

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

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

更新:

  1. Use fastlane with VSTS and Xamarin.iOS ?

FaSTLane 工具是用 ruby​​ 编写的,用于自动化操作,例如调用 xcode 进行构建或调用 google play 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 并创建构建定义,则可以选择 Xamarin Android 或 iOS 模板,然后填写空白。这些步骤调用 nuget、build、sign 等。与 cake build 正在做的事情相同。

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

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

关于ios - Xamarin iOS 应用的自动化 CI 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079895/

上一篇:iOS CommonJS 模块返回 "undefined is not a constructor"错误

下一篇:iOS Metal——在写入纹理时读取旧值

相关文章:

ios - 错误 CS1525 : Unexpected symbol

android - 上传 playstore 免费和付费应用程序国家明智

crash - rapidJson:在 Release模式下崩溃

ios - Facebook 阅读好友列表不给我 iOS SDK 中的完整好友列表

ios - 在 Swift 中匀场

xamarin - 警告 : Input PNG does not have an 8 bit input depth. 请将您的 PNG 转换为 8 位以在 iPhone OS 上获得最佳性能

maven - 如何在maven antrun插件中执行输入任务

ios - 带有类型为 "cannot invoke initializer for type ' 的参数列表的 'UITextField' Int' 是什么意思?

ios - 将草图线高转换为 ios 线 'height multiple' 属性

c# - Xamarin Forms 项目中以 *CS.cs 结尾的文件的用途是什么?