操做系统:OSX10.14html
XCode:10.1ios
Cordova:8.1.2git
假设已经配置好了Cordova开发环境,Apple ID你也有,XCode也能够正常工做了,那么就能够继续看这篇文章了!github
若是你没有看我这篇文章,那么你有可能会顺利编译你的Cordova工程,可是,我以为你极可能正在解决遇到的麻烦,并且让你焦头烂额的麻烦,你都不知道错误到底是怎么发生的!shell
一,解决XCode编译Cordova工程问题:npm
1,保证苹果开发证书正常可用。这就很少说了,有不少文章介绍,打开工程以后,若是没有加入苹果ID,则加入,加入后,下载所有证书,随后在工程里面设置“Automatically manage signing”,随后选对“team”,XCode就把这件事搞定了。可是下面的操做一样重要,若是不按照下面作,我相信你确定编译不过去!xcode
2,修改编译选项:这对于Cordova工程编译,很是重要,若是不修改,我敢保证你编译不过去,并且错误五花八门,你即便上网搜索解决方法,也是驴唇不对马嘴!ide
A,打开选项界面:点击XCode菜单的“File” -> "Workspace settings",若是你打开的是工程,那应该是"Project settings"。测试
B,修改编译选项:把“Build System”修改为“Legacy Build System”。ui
从字面上理解,“Legacy Build System”是旧的或传统的编译系统,确实是这样!在XCode9开始,苹果公司引入新的编译系统,把先前的编译系统叫作“Legacy Build System”。Crodova工程,那些基础工程,应该是老版本的XCode开发的,若是不把编译系统调整成“Legacy Build System”,我以为你很难编译经过,并且出现的那些错误会莫名其妙,你根本没法解决,由于搜索到的答案都不对,真正形成错误的缘由是这个编译系统,不是别的!!
这是我先前遇到问题:http://www.javashuo.com/article/p-qbonibfx-mv.html
通过上面设置,我想你如今能够编译Cordova工程了,你会很高兴,新建一个Cordova工程,而后用XCode10编译,假设你在这以前已经顺利链接好了你的IOS真机,那么你会很顺利看到在IOS真机里面运行的你刚刚创建的Cordova程序!可是你不会止步于此啊,你得写本身的代码啊,因而,你就随便修改了一个地方,而后又编译了一下,也顺利安装到了IOS真机里了,可是,可可是,神奇的一幕会让你目瞪口呆!!天哪,我刚刚修改的程序竟然没有变化,仍是上次的程序!你可能以为本身哪里作错了,因而又十分认真地修改了一次,随后又顺利编译、安装到真机里了,此次会让你更惊讶,你已经百分百肯定,本身没有犯错,真的修改了程序了,可是在IOS真机里面运行的,依然是你最初的,第一次安装到真机里的Cordova程序,没有任何变化!!!
先无论上面问题,按照我下面的作!!
二,配置Cordova的IOS开发环境:打开shell,依次执行下面命令。
1,
xcode-select --install
2,
sudo npm install -g ios-sim
3,
sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
关于命令3,可能不一样运行OSX的设备会有差别,因为我是在虚拟机里安装的OSX10.14,因此只有执行此命令才能够。
到此,已经配置好了在OSX里面,Cordova编译IOS须要的环境了,那么是否是上面XCode成功编译,可是没法把修改的程序安装到真机问题解决了呢?NO!!
我如今是在真机上作开发测试,是debug版本程序,对应证书也是,因此使用的命令也都是debug版本对应的,若是你未来要发布,修改为发布版本的命令,把命令中的debug,替换成release,应该就能够!
三,解决XCode顺利编译,可是没法把修改程序安装到真机问题:
我想告诉你一个事实,XCode是能够顺利编译Cordova工程,可是,那不是管理Cordova里面咱们开发的程序!!若是想要让本身开发的程序,可以经过XCode编译、发布到真机,那么必须首先用Cordova命令编译咱们的程序!!
1,执行Cordova编译命令,编译咱们的程序。
cordova build ios --debug --device
2,安装咱们编译好的程序:
A,直接使用XCode安装。这种方式比较简单,链接好了真机以后,点击运行按钮就能够了。
B,用 ios-deploy 安装。
找到你编译程序的目录,在shell里面进入那个目录,随后执行安装命令。个人工程名是“test”,生成的安装文件目录是“/Users/sunylat/test/platforms/ios/build/device”。那么我执行下面两条命令,就顺利把个人程序安装到了正在链接的真机里了。
cd /Users/sunylat/test/platforms/ios/build/device
ios-deploy --justlaunch --debug --bundle test.ipa
参考:
http://cordova.axuer.com/docs/zh-cn/latest/guide/platforms/ios/index.html
https://github.com/ios-control/ios-deploy#readme
http://cordova.axuer.com/docs/zh-cn/latest/reference/cordova-cli/index.html#cordova-build-command