操作系统:OSX10.14

XCode:10.1

Cordova:8.1.2

假设已经配置好了Cordova开发环境,Apple ID你也有,XCode也可以正常工作了,那么就可以继续看这篇文章了!

如果你没有看我这篇文章,那么你有可能会顺利编译你的Cordova工程,但是,我觉得你很可能正在解决遇到的麻烦,而且让你焦头烂额的麻烦,你都不知道错误究竟是怎么发生的!

一,解决XCode编译Cordova工程问题:

1,保证苹果开发证书正常可用。这就不多说了,有很多文章介绍,打开工程之后,如果没有加入苹果ID,则加入,加入后,下载全部证书,随后在工程里面设置“Automatically manage signing”,随后选对“team”,XCode就把这件事搞定了。但是下面的操作同样重要,如果不按照下面做,我相信你肯定编译不过去!

2,修改编译选项:这对于Cordova工程编译,非常重要,如果不修改,我敢保证你编译不过去,而且错误五花八门,你即使上网搜索解决方法,也是驴唇不对马嘴!

A,打开选项界面:点击XCode菜单的“File” -> "Workspace settings",如果你打开的是工程,那应该是"Project settings"。

B,修改编译选项:把“Build System”修改成“Legacy Build System”。

从字面上理解,“Legacy Build System”是旧的或传统的编译系统,确实是这样!在XCode9开始,苹果公司引入新的编译系统,把先前的编译系统叫做“Legacy Build System”。Crodova工程,那些基础工程,应该是老版本的XCode开发的,如果不把编译系统调整成“Legacy Build System”,我觉得你很难编译通过,而且出现的那些错误会莫名其妙,你根本无法解决,因为搜索到的答案都不对,真正造成错误的原因是这个编译系统,不是别的!!

这是我先前遇到问题:https://www.cnblogs.com/sunylat/p/9936145.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

转载于:https://www.cnblogs.com/sunylat/p/9946482.html

Cordova - 彻底搞定IOS编译!相关推荐

  1. 遭遇Crash文件战:教你如何搞定iOS崩溃日志

    请叫我背景 最近在提交应用到App Store的时候,竟然被拒了两次.那时候心里的想法是,尼玛完蛋了,要被老板开除了,我是不是要失业了.于是乎那两周几乎毛脑子都是为什么Apple你这么狠心,我们明明相 ...

  2. ipa解包打包工具_7步!教你轻松搞定ios重签ipa包

    如果你想在自己的IPhone上安装一个ipa文件,你的手机是无法正常安装的,(越狱,企业证书分发除外)但是我们可以通过以下步骤来实现,前提要有自己的开发者账号.接下来就看一下具体的步骤: 第一步:用X ...

  3. iphone5刷android,iphone5s怎么刷机 简单几招搞定iOS【图文教程】

    刷机一词意思就是将手机的操作系统完全重装或更新一次.一般安卓用户对于这个操作是非常熟悉的.但是对于iPhone来说,我们就很少听说刷机了.其实对于iPhone手机来说,刷机的含义也同样是指更新一词系统 ...

  4. 搞定iOS的几种页面跳转方式

    前言 对于新手来说,iOS的几种跳转方式还挺繁琐的,下面就来一一介绍 1.不带任何布局文件的viewController之间的跳转 MyViewController *vc = [[MyViewCon ...

  5. 两行代码搞定iOS自定义HUD风格动画弹窗(支持选择记录) - SKChoosePopView的使用和实现思路

    作者 ShevaKuilin 关注 2017.03.25 18:28* 字数 2014 阅读 270评论 0喜欢 23 さらい屋五葉 原文地址----> MyBlog HUD风格的选项弹窗是我们 ...

  6. 一张图搞定iOS学习路线

  7. ios 自定义拍照页面_30分钟搞定iOS自定义相机

    最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以.就花时间简单研究了一下相机的自定义. 相机属于系统硬件,这就需要我们来手动调用iPhone的相机硬件,分为以下步骤: ...

  8. iOS一键搞定自动打包并发布到AppStore和Fir

    原文发布在个人简书,更多内容欢迎关注笔者简书 互相交流. 日常编译打包工作主要是以下两个目的: 提交测试版本ipa给测试人员 配置好测试描述文件,然后Product -> Archive编译打包 ...

  9. 一次搞定OpenCV源码及扩展模块的编译与环境配置

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|计算机视觉工坊 版本:VS2017.CMake3.12. ...

最新文章

  1. TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(matplotlib动态演示)—daiding
  2. 数据库70多张表设计的一些思考…
  3. 【渝粤教育】国家开放大学2018年秋季 1137t医院管理 参考试题
  4. selenium 隐藏窗口_anaconda下安装selenium包
  5. 串口扫盲十三:接口技术的基本知识
  6. laravel自定义错误页和错误日志处理
  7. 模拟SAP ALV下载XLSX文件
  8. CSS权威指南阅读笔记
  9. 笔记本电池续航测试软件,电池续航测试和试用总结
  10. 电场在计算机专业的应用,电磁场毕业论文题目范文 数值计算和教学理论方面本科论文范文8000字...
  11. 腾讯地图api使用——地图选点自动定位到当前位置
  12. UWA DAY 2021 精彩盘点 | 35场技术议题掀起的思维浪潮
  13. Python实现定时发送监控邮件
  14. 质因子分解 Python
  15. 毕业论文知网查重之应对办法
  16. 罐子与硬币--【英雄会】
  17. python中global和def_Python中 Global和Nonlocal的用法详解
  18. html中表格实现在页面居中显示,html中怎么把表格居中
  19. 按键控制开关4017芯片数字电路
  20. 做每个人的互联网中心

热门文章

  1. android 百度移动搜索 url 参数,百度刷站内快排算法参数-百度搜索URL参数比较详解...
  2. linux jdk1.7 tomcat mysql_RedHat Linux 下安装JDK 1.7+MySQL 5.0+Tomcat 7.0.27过程
  3. PAT_B_1006_Java(15分)
  4. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,一篇是王飞跃等人翻译的美国卡内基梅隆大学计算机科学系主任.PPT...
  5. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
  6. 写代码?程序猿?你不能不懂的八大排序算法的Python实现
  7. Lucene创建索引入门案例
  8. MSP430F149的ADC12应用
  9. ai伪造论文实验数据_5篇有关AI培训数据的基本论文
  10. 算法题指南书_分类算法指南