由于鄙人的mac上并没有安装Xcode,只有Command line tool(包含Mac SDK,在/Library/Developer/下),进行一些需要cmake的软件安装的时候可以很好的提供依赖,但是这回碰到的是打ios版本,需要ios的sdk,执行添加平台命令(ionic cordova platform add ios)的时候,就出现了标题所述的错误,本以为网上搜一下command line tool能不能解决这个问题,结果全是教你如何安装,一篇篇文章长得都还一样,内心瞬间涌上来十万只草泥马(你们这不是在浪费人家服务器资源嘛)。。。 在这里写下这篇文章,希望能给到遇到类似情况的朋友一些帮助(只有clt,没有xcode)。
正如上面所描述的,鄙人认为是clt缺乏iosSDK所导致的错误,那没有办法,只能下载安装xcode了。。。
- 在appstore里下载Xcode ,自动安装
- 命令
xcodebuild
发现跟之前一样出现"xcode-select: error: tool ‘xcodebuild’ requires Xcode…"错误,并提示已经存在clt在/Library/Developer/下 - 修改xcodebuild默认工作路径:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
- 再次
xcodebuild
一下,提示需要同意证书,根据提示直接sudo xcodebuild -license
,继续空格或回车最后输入agree就好了。 - 重新
ionic cordova platform add ios
,果然ok。
-------------------------分割线-------------------------
上面的在安装xcode之后的确添加ios平台成功了,BUT.. 再次删除后重新添加又出现了该错误,删除android平台重新添加一样的错,那基本可以知道这个错误不是cordova与sdk之间的错误了,而是cordova本身内部并不支持这个glob,查看npm list glob,发现存在,更新glob版本 发现已经是最细,没有办法那就只能查看该项目的cordova 插件库了。执行ionic cordova plugin ,然而并没有什么发现,重新ionic start一个新项目,添加android平台--成功!好的吧,回忆一下项目当中用到了哪些插件,好像用的并不多,于是先删除那些没用的插件,尽量恢复到如初的样子,或者暴力直接删除那些后来添加的插件,如果运行项目报错,再进行添加不迟。ionic serve 一下,运行ok,继续打版本工作。 当然,这是一种委曲求全的办法。
- 删除cordova无必要的插件
- 重新添加平台 ionic cordova platform add ios (先尽心移除操作)
其实ios版本打包还是需要用到xcode的,包括添加证书等问题,可以比较方便的解决。
如有帮助,无须言谢。
转载说明出处,感谢。
鄙人github也开始提供自己写的工具,如有用,即拿走
https://github.com/wangsong19