从Xcode项目中导出.ipa文件,而无需打开Xcode

莫滕·克雷恩(Morten Krane)

我们有一个API,用户可以调用该API创建Cordova应用程序/项目,上传其www目录,然后开始编译并下载可执行二进制文件。然后,该二进制文件将进入私人应用商店。

我在iOS的编译步骤上遇到了麻烦。Cordova的构建步骤没问题,但是它不会像Android一样输出二进制文件。阅读了我在Stackoverflow和其他地方找到的所有内容之后,该计划是这样的:

xcodebuild clean -configuration Release -alltargets
xcodebuild -scheme MyApp archive -archivePath build/MyApp
xcodebuild -exportArchive -exportFormat ipa -archivePath "build/MyApp.xcarchive" -exportPath "MyApp.ipa" -exportProvisioningProfile "My Prov Profile"

鉴于签名标识和所有内容均已正确设置,因此几乎可以正常工作。第一条命令执行正常。第二个命令只是挂起。

但是,如果我在Xcode中打开项目,然后执行命令,它将编译并导出,然后剩下的就是.ipa文件,这正是我想要的。似乎在首次打开项目时,Xcode会设置工作区和一些与方案相关的东西。

有什么办法可以让xcodebuild(或xcrun或其他任何东西)为我创建此工作区文件?

还是有其他方法可以解决此问题?

现在,我有一个解决方案,其中实际上是打开Xcode项目,等待15秒钟,然后继续。但是我可以想到一千种方法会在某个时候失败,因此我想将其更改为更优雅的方法。

如果相关,我目前已安装Xcode 6.3。


更新:蛋白石下面的答案使我走上了正确的道路(我认为)。我最终要做的是,按照Opal的链接导出共享方案,并将其用作未来应用程序的模板。解决方案是这样的:

# Copy shared scheme file into directory
mkdir /path/to/project/dir/MyApp.xcodeproj/xcshareddata
mkdir /path/to/project/dir/MyApp.xcodeproj/xcshareddata/xcschemes
cp data/MyScheme.xcscheme /path/to/project/dir/MyApp.xcodeproj/xcshareddata/xcschemes/.

# Use sed to replace app name in scheme file
sed -i '' "s/%app_name%/MyApp/g" MyApp.xcodeproj/xcshareddata/xcschemes/MyScheme.xcscheme

# CD into directory
cd /path/to/project/dir

# Move files from Cordova to our build directory
cp -r CordovaLib/build/* build/.

# Build and export
xcodebuild clean -configuration Release -alltargets
xcodebuild -scheme MyScheme archive -archivePath build/MyApp
xcodebuild -exportArchive -exportFormat ipa -archivePath "build/MyApp.xcarchive" -exportPath "MyApp.ipa" -exportProvisioningProfile "MyProvProfile"
蛋白石

您尝试构建的应用程序似乎没有共享方案。如果不共享方案,则在将项目加载到xcode时创建。要创建共享方案,请访问站点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章