Xamarin.ios monotouch中的自动构建

Xamarin.ios monotouch中的自动构建,xamarin.ios,Xamarin.ios,我目前正在尝试为我的monotouch项目实现一个一键构建解决方案(无需启动MonoDevelopIDE),在这里我可以指定配置文件和代码签名证书。我搜索了nant、ant和maven等流行的构建工具,但似乎都不支持monotouch。有人试过类似的吗?你试过teamcity?也许值得你看一看我用过的这个帖子 您基本上设置了Jenkins服务器,并将Mac设置为“从属”构建服务器。(我使用了一个JNLP从机) 从那里,您可以运行构建中所需的任何命令行,因此只需使用一些参数运行mdtool,如下所

我目前正在尝试为我的monotouch项目实现一个一键构建解决方案(无需启动MonoDevelopIDE),在这里我可以指定配置文件和代码签名证书。我搜索了nant、ant和maven等流行的构建工具,但似乎都不支持monotouch。有人试过类似的吗?

你试过teamcity?也许值得你看一看我用过的这个帖子

您基本上设置了Jenkins服务器,并将Mac设置为“从属”构建服务器。(我使用了一个JNLP从机)

从那里,您可以运行构建中所需的任何命令行,因此只需使用一些参数运行mdtool,如下所示:

/Applications/MonoDevelop.app/Contents/MacOS/mdtool -v build "--configuration:Release|iPhone" "Path/To/YourSolution.sln"

需要担心的一件事是,要签署iOS应用程序,从进程必须在您的用户下运行。所以你不能为它创建一个Mac守护进程,你必须在启动时为你的用户运行从进程并最小化它,这有点烦人。

谢谢你的回答。然而,在这种情况下,我不需要使用这种重型火炮。由于我正在开发一个单一的小型应用程序,因此我在解决方案中创建了3种不同的构建配置,因为我发现可以在monodevelop项目选项菜单中为每个应用程序(开发、临时、应用程序存储)配置不同的代码设计标识和配置文件

然后在AppleStore/Ad Hoc配置中,我添加了构建后命令,这样我就可以自动创建.ipa文件(基本上是创建一个“有效负载”文件夹,将.app文件复制到其中,然后将其压缩到.ipa文件,以及图标和itunesartwork文件)


最后,我创建了一个bash脚本,它通过任何配置调用mdtool,这样我就可以通过执行脚本来构建和生成.ipa可执行文件。

我使用了类似的方法,从xbuild启动mdtool。然而,我最近遇到了一些问题,它在一些特别的构建上失败了,并且偶尔会生成一个损坏的构建。Mono团队告诉我,苹果对plist格式的更改导致了一个问题。它在GUI中固定,但在mdtool中不固定。他们已经知道了,但还没有修复的预计时间。我也注意到了这一点,我已经有一段时间没有启动自动构建了,因为我的应用程序不需要新的更改。看起来这需要在尝试任何自动构建之前修复…看起来这将在下一版本中修复。请参阅上的注释。Xamarin Studio中的位置是
/Applications/Xamarin\Studio.app/Contents/MacOS/mdtool
我已经了解到可以将此作为守护进程运行,但您需要做的是设置密钥链,使其包含所有需要的证书,这些证书通常由XCode自动处理。你介意和我分享你的bash脚本和一个示例.csproj文件吗?嗨,很遗憾,我把它弄丢了。但这是两年前在monotouch的早期阶段。据我回忆,构建后命令不再是必需的,因为MonoTouch的最新版本已经内置了这样的功能。您可以在项目的构建设置中选择“构建企业分发包”没有问题,我感谢您的查找。我们的团队有一些基本的进展,希望我们能在完成所有工作后在这里发布我们的发现。只是想让iOS和Android的TestFlight上传都集成进去。Dave,你有什么进展吗?如果您有任何提示/博客帖子等,例如,将IPA上传到testflight的命令行是什么?您是否将其作为单独的构建步骤?