MonoTouch:从命令行创建 iOS AppStore-Version

Posted

技术标签:

【中文标题】MonoTouch:从命令行创建 iOS AppStore-Version【英文标题】:MonoTouch: Create iOS AppStore-Version from command line 【发布时间】:2013-03-22 16:23:58 【问题描述】:

我想使用 MonoTouch (Xamarin) 中的 mdtool 直接从命令行构建我的 ios-apps Appstore-ready,以便 Jenkins 可以立即启动并生成可上传的包。

我使用以下命令:

'/Applications/Xamarin Studio.app/Contents/MacOS/mdtool' -v build '--configuration:AppStore|iPhone' MyAppProject.csproj

现在,构建运行,使用我的 AppStore 配置文件并在我的 bin/iPhone/AppStore 文件夹中创建文件。

现在,根据documentation of Xamarin,我应该将创建的应用程序文件压缩到 bin/iPhone/AppStore 并在 xCode Application Loader 中选择它,如屏幕截图所示:

但是应用程序加载器显示每个文件都是灰色的,所以没有机会继续。

【问题讨论】:

您找到解决方案了吗? 【参考方案1】:

如果将 .zip 扩展名重命名为 .ipa 会怎样?

【讨论】:

顶部没有可见扩展名的“Ios”文件实际上是Ios.app,看起来扩展名隐藏在finder中。 Ios.app.zip 就是 zip 存档中的 Ios.app。 Ios.app.zip.ipa 是将 Ios.app.zip 重命名为 ipa。我压缩的文件是否正确? 我的意思不是重命名为 AppName.zip.ipa,我的意思是重命名为 AppName.ipa。不确定这是否会有所作为。 zip -r AppName.zip AppName.app; mv AppName.zip AppName.ipa 再一次,没有变化。如果我让 Xamarin Studio 通过“Project -> Zip App Bundle”为我进行压缩,它也会执行 zip -r -y "/Users/Shared/Jenkins/Home/jobs/projectname/workspace/build/ ios/Ios.zip" "Ios.app" - 所以它只包含 .app 不,和你的 zip 命令完全一样 zip -r AppName.zip AppName.app; mv AppName.zip AppName.ipa 或直接从 Xamarin Studio 执行。应用程序加载器不想接受任何东西...... :(【参考方案2】:

我认为你不应该选择“Open package”,而是“Deliver Your App”。

【讨论】:

【参考方案3】:

您还可以使用带有“PackageApplication”参数的 xcrun(“XCode Run”)命令行工具将“.app”打包​​成“.ipa”,并可选择同时指定签名身份和配置文件时间。

类似:

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "Ios.app" -o "Ios.ipa" --sign "[DEVELOPER_NAME]" --embed "[PROVISONING_PROFILE]”

这里有更多关于 xcrun 的信息: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcrun.1.html

【讨论】:

以上是关于MonoTouch:从命令行创建 iOS AppStore-Version的主要内容,如果未能解决你的问题,请参考以下文章

从命令行完全构建 Monotouch 应用程序包的完整步骤是啥?

Phonegap、Corona 或 Monotouch 是不是可以在 iOS 上进行位置感知通知?

如何从终端在 iOS 模拟器中运行 MonoTouch 应用程序?

使用 Monotouch 和 iOS 从服务中提取数据 (JSON) 的理想方式?

将 CMake 选项从命令行移动到*** CMakeLists.txt

ios中使用monotouch的自动完成选项的自定义列表