Xamarin 在 Jenkins 上生成 IPA

Xamarin Forms IPA generation on Jenkins

我在为 Jenkins 上的 Xamarin Forms iOS 项目生成 IPA 时遇到了一些问题。我按照文档 (http://developer.xamarin.com/guides/cross-platform/ci/jenkins_walkthrough/) 和 post xamarin 论坛上的一个问题来解决我的问题,但在那里很难找到答案,所以我会在这里尝试。

我可以使用 mdtool 构建应用程序,但在 Jenkins 的工作结束后我的项目中没有任何 IPA 文件。

我在论坛上看到一些讨论告诉我要使用存档方法而不是为 mdtool 构建。但这也没有改变任何东西。

我也尝试在应用程序构建后使用 xcrun 创建 IPA 文件,但我遇到了那种错误:

error: Unable to copy application 'iOS/bin/iPhone/Release/Application.iOS.app/' into '/var/folders/v2/gnnclzrd2g98zqc89qn204km00007h/T/VXEBXe7WNV/Payload'

文档中没有太多关于 IPA 是如何生成的解释,所以我想澄清一下。

有人设法在 Jenkins 中为其 iOS Xamarin Forms 项目创建 IPA 吗? 如果是这样,你是怎么做到的?我可以为您提供有关我使用的 Jenkins 作业的更多信息,...如有必要。

此致

经过几个小时的搜索,我才找到答案,这有点愚蠢。 xcrun 给我一个那个错误,因为我的应用程序路径最后有一个 / (就像 post Xcrun PackageApplication, failed unable to copy application 中解释的那样)。

但是我又遇到了另一个错误:

error: Unable to create 'iOS/bin/iPhone/Release/volunteer.ipa'

xcrun 的输出选项需要是绝对路径,而不是项目内部的相对路径。 通过使用绝对值,生成 IPA :)