mac系统ionic开发ios app从安装到打包

各种安装

下载xcode

在打包时必需,可以去app store里搜索xcode,或者去找网盘或镜像

ant

模拟和打包 
*ant依赖JRE,所以还得安装java运行时,可以使用brew search java 
homebrew是mac下的包管理工具,很好用,很多工具可以先在这里搜索

ionic和cordova安装

sudo npm install -g ionic cordova

模拟器安装

sudo npm install -g ios-sim

IONIC添加ios平台、编译、模拟器运行

添加平台

ionic platform add ios 
这一步时,可能会提示安装borew

构建平台

ionic build ios

使用ionic serve

ionic serve –lab 
或者 
ionic serve –address 68.54.96.105 
指定IP地址 
*使用默认浏览器打开页面,同时显示IOS和Android效果

用模拟器打开

ionic emulate ios

emulate也可以指定使用的模拟设备

先查看支持的设备

<code class="hljs brainfuck has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">ionic</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">emulate</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">ios</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">-</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">list</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

可能输出如下设备

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>s, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>s, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span><span class="hljs-attribute" style="box-sizing: border-box;">-Plus</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>s, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPhone<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>s<span class="hljs-attribute" style="box-sizing: border-box;">-Plus</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPad<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPad<span class="hljs-attribute" style="box-sizing: border-box;">-Retina</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPad<span class="hljs-attribute" style="box-sizing: border-box;">-Air</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPad<span class="hljs-attribute" style="box-sizing: border-box;">-Air</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    iPad<span class="hljs-attribute" style="box-sizing: border-box;">-Pro</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.3</span>
    Apple<span class="hljs-attribute" style="box-sizing: border-box;">-TV</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1080</span>p, tvOS <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.2</span>
    Apple<span class="hljs-attribute" style="box-sizing: border-box;">-Watch</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">38</span>mm, watchOS <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.2</span>
    Apple<span class="hljs-attribute" style="box-sizing: border-box;">-Watch</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">42</span>mm, watchOS <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.2</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li></ul>

直接复制每个设备的字符串,包括后面的版本号,比如打算使用『iPad-2, 9.3』就需要拷贝这一串作为emulate的参数

<code class="hljs bash has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">onic  emulate ios --target=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"iPad-2, 9.3"</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

这样模拟器使用的就是9.3版本的ipad2

<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">此处参考:<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">http:</span>/<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/stackoverflow.com/questions</span><span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/22310526/cordova</span>-start-specific-ios-emulator-image</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

安装到USB设备

ionic run ios/android这里写代码片

开发

ionic setup sass

更新sass

真机安装

安装证书什么的 
将设备加入证书,并更新证书 
*安装进设备前,需要先build,这样才是最新的效果

模拟调试

如果是在模拟器中调试的话: 
1、在模拟器中打开应用,并点开需要调试WebView的页面; 
2、在Safari中点Develop -> iOS Simulator -> XXX.app,弹出Web Inspector进行调试。

真机调试

如果想用真机调试的话(只能调试用Xcode编译安装的应用): 
1、先在设备上启用Web Inspector:点Settings -> Safari -> Advanced,启用Web Inspector; 
2、打开应用,并点开需要调试WebView的页面; 
3、在Safari中点Develop -> 设备名 -> XXX.app,弹出Web Inspector进行调试。

打包

ionic有package命令,试过始终是error server

使用xcode

打开xcode,file/open,选择IOS里的name.xcodeproj项目文件 
然后使用xcode打包,教程很多,下面贴一个

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-label" style="box-sizing: border-box;">http:</span>//jingyan<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.baidu</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.com</span>/article/ceb9fb10f4dffb8cad2ba03e<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.html</span></code>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值