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) 的理想方式?