最近一直在用cocos的命令行打IOS的安装包。然后前几天手贱升级了Xcode到Xcode8.3
http://stackoverflow.com/questions/43068608/xcrun-error-unable-to-find-utility-packageapplication-not-a-developer-tool
这个是StackOverflow上的解释,
我想问一下引擎组什么时候修复一下这个问题
恩,比较简单粗暴的方法是Xcode-Preference-Location-Command Line Tools换成Xcode8.2的版本(保证你的电脑里有一个8.2版本的Xcode)
你使用的是什么命令?
cocos compile -p ios
这是Xcode8.2.1打包出现的warning,估计8.3直接就删除了吧!
warning: PackageApplication is deprecated, use `xcodebuild -exportArchive` instead.
8.3PackageApplication命令已删,可以从老版本里面复制一个过来,百度一下就能找到相关文章
cocos console 什么时候兼容xcode8.3呢?
可以自己改的吧?
不好意思,在忙3.15发布和creator for c++的事情。能否帮忙再github的issue system建个issue,在下个版本解决。
在Xcode8.3.2下即使先生成.xcarchive再导出.ipa 的命令行与8.2的也不一样,需要根据版本号区分兼容的。
旧版本的大约在
Xcode8.2.xx
xcodebuild -exportArchive -exportFormat ipa -archivePath /a.xcarchive -exportPath /a.ipa -exportProvisioningProfile "iPhone Developer"
而在Xcode8.3.2
xcodebuild 去掉了-exportProvisioningProfile参数,且-exportPath指定的是路径而不是文件名
如这个链接讲的一样,使用的是-exportOptionsPlist
而不需要-exportProvisioningProfile
。我这边测试了,不需要传入provision profile的路径的,xcodebuild会自动找到匹配的文件。
问题是-exportOptionsPlist
需要传入对应的plist文件的路径。里面涉及到各种配置,那么就需要在模板里提供这么一个文件。我打算把这个文件放到APP_ROOT/proj.ios_mac/ios
下,cocos命令默认从该路径读取,然后cocos命令再增加一个参数用于修改该plist文件的路径。
当然了,cocos命令需要区分xcode版本,只在8.3+使用新的方法。
哦,这个方法有个问题,那就是对于老版本的项目会出问题,因为没有对应的plist文件,所以这个配置文件需要由cocos命令动态生成,开发者可以修改生成的plist文件。