ionic4 ios调试打包
在ionic3的时候打包上架过ios的版本,等到今天,差不多一年左右过去.做了个ionic4的app要测试打包的时候,才发现以前的东西忘的差不多了.不得不从头再来一遍,所幸的是这次看见了很多好的文章,于是把它们汇总起来,自己做一些补充,整理成章,以便下次回顾
版本目录
VMware:VMware Workstation Pro v15.0.0
Mac:Mac os10.14
NodeJs:10.15.3
Ionic: 4.12.0
Cordova:8.0.0
Xcode:10
创建Mac环境
如果已经有了mac笔记本或者黑苹果系统请跳过此步骤
参照下述方法安装MAC OS虚拟机
1下载VMware Workstation Pro v15.0.0,http://www.onlinedown.net/soft/2062.htm
2下载Mac OS10.14镜像并添加虚拟机,创建mac环境,https://www.52pojie.cn/thread-804000-1-1.html
环境配置
当设置好了Mac环境以后,就需要搭建Ionic4的运行与打包环境
按照如下顺序安装:
1 安装NodeJs,直接去官网下载安装(10.15.3)
2 安装 nrm :sudo npm install nrm -g,可以切换npm源,加快安装速度,详见:https://www.cnblogs.com/wangmeijian/p/7072053.html
3 安装ionic :npm install ionic -g
4 安装cordova:npm install cordova@8.0.0 -g
同时,在ios中测试,打包,上架都是需要依赖Xcode 的,去官网下载Xcode10,安装在应用程序里面即可
证书生成
证书生成是非常重要的一步
大致流程如下:
1在Mac环境里面,导出CSR文件,钥匙串访问->证书助理->从证书颁发机构请求证书
2在apple开发者中心里面添加Ids,注意与你项目的Id相同
3根据CSR文件,生成开发和生产证书
4添加设备
5添加描述文件
具体参见:https://www.jianshu.com/p/9c00358bcc44
生成平台项目
Warnning
在生成对应平台的数据的时候
1先检查资源文件夹resources下有没有ios平台的icon和splash,没有的话,执行ionic cordova resources(需要注册邮箱和密码) 生成对应资源,直到检查文件夹资源存在为止
2检查app文件夹的权限是不是都是属于当前账号,不能存在root级别的,详见 https://www.jianshu.com/p/f60d28adb468
上述确定无误后,执行 ionic cordova prepare ios,等待完成,在在platforms文件夹内多出ios项目结构
双击打开ios文件夹内的xcodeproj文件
Xcode启动后,操作参见 https://www.jianshu.com/p/9c00358bcc44,可能会遇到下述的问题
问题集合
1打开xcodeproj文件后,在Xcode中如果频繁出现lock和unlock的提示,或者有的文件被锁上了,就是我上面的说的权限问题,还是按照上面说的参考文章好好看看
2调试的时候出现下列错误

设置如下的选项即可

3真机调试的时候出现 App installation failed (A valid provisioning profile for this executable was not found)
解决方法,参见https://www.cnblogs.com/sunylat/p/9936145.html?tdsourcetag=s_pcqq_aiomsg
4在模拟器调试App的时候,启动后白屏,日志却没有打印东西,如下

后真机调试的时候,这里打印了日志,所以如果想要看到日志,不妨尝试一下真机调试
(还未上架,未续待完)
文档信息
- 发表作者: 半路独行
 - 发表出处: 博客园
 - 原文地址: https://www.cnblogs.com/banluduxing/p/10770089.html
 - 版权信息:
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 
感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接。
ionic4 ios调试打包的更多相关文章
- [转载]IOS项目打包除去NSLog和NSAssert处理之阿堂教程
		
原文链接地址:http://blog.sina.com.cn/s/blog_81136c2d0102v1ck.html 原文地址:IOS项目打包除去NSLog和NSAssert处理之阿堂教程作者:时空 ...
 - 如何将 iOS 工程打包速度提升十倍以上
		
如何将 iOS 工程打包速度提升十倍以上 过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费. ...
 - iOS调试
		
iOS高效调试 写代码难免出现bug.储备些调试技能绝对能够提高你的工作效率,让bug无所遁形.下面就和大家分享一些我在工作中常用的iOS调试小技能. 1. 打印 最简单,基础的调试方法就是打印日志了 ...
 - Xamarin.iOS调试提示需要iOS SDK
		
Xamarin.iOS调试提示需要iOS SDK 错误信息:The version of Xamarin.iOS requires th iOS 9.3 SDK (shipped with Xco ...
 - iOS企业版打包(转载)
		
转自 http://www.cnblogs.com/shenlaiyaoshi/p/5472474.html 神来钥匙-陈诗友 iOS 企业版 打包 使用 iOS 企业版的证书发布应用可以跳过 A ...
 - 关于 iOS 批量打包的总结
		
关于 iOS 批量打包的总结 本文作者: 伯乐在线 - Tsui YuenHong .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 如果你曾经试过做多 target 的项目,到了测试人员要 ...
 - iOS 调试心得
		
修复 bug 占用我们日常开发的大部分时间,熟练的使用调试工具可以给我们节约大部分的时间. LLDB 的常用命令 expression expresion 是一个非常常用的命令,我们可以通过这个命令来 ...
 - ios自动打包-fastlane 安装、使用、更新和卸载
		
ios自动打包使用fastlane 1.首先安装xcode 首先检查是否已经安装 Xcode 命令行工具,fastlane 使用 xcodebuild 命令进行打包,运行 xcode-select - ...
 - hbuilder IOS APP 打包与发布2
		
在上一篇的<hbuilder IOS APP 打包与发布>中,请求 的 是APP ids . ios开发证书 .和开发配置文件 , 这一篇中就不写发布证书和配置文件的请求,因为流程 ...
 
随机推荐
- Linux找不到动态库
			
首先系统上得有,只是路径问题 可使用ldd查看可执行程序的依赖库 以下都需要超级权限: find / -name libnet.so.9 // 可能在/usr/lib或/usr/local/lib中 ...
 - python之类之多继承
			
class A(object): def test_func(self): print("from A") class B(A): pass # def test_func(sel ...
 - 安装Python3后,centos使用yum报错
			
题记 在之前的文章中我自定义安装了Python3,并且修改了默认的 Python软链,今天想搭建一个 ftp 服务器,使用命令的时候出现了一个错误: 问题 1.使用 yum 安装 ftp工具 yum ...
 - 6-Linux 上mysql的常用命令 以及 tomcat的相关指定
			
mysql -u root -p 进入Mysql //注意一下有逗号!!! show databases; //显示所有的数据库 drop database mydb; // 删除mydb这个数据库 ...
 - Pull to RefreshListView 添加HeaderView
			
使用listView.addHeaderView(view) 可以在 listView 上方添加一个view视图 ,使listView和这个view连接在一起 效果上看上去是一个整体 一般用于上拉刷新 ...
 - hadoop应用场景总结
			
原文地址 我个人接触hadoop仅仅不到一年,因为是业余时间学习,故进度较慢,看过好多视频,买过好多书,学过基本知识,搭建过伪分布式集群,有过简单的教程式开发,恰逢毕业季,面试过相关岗位,自认为路还很 ...
 - linux文件管理2
			
1.显示文件内容 cat : 显示文件内容 tac : 倒序显示内容 2.更改文件权限 chmod :更改文件权限 -R 递归改变 chown :更改文件拥有者 -R 递归改变 chgrp :更改文件 ...
 - C#通过反射获得对象所有属性和值
			
C#获得对象的所有属性和值 public void GetPros() { UserInfo userInfo = new UserInfo(); userInfo.ID = ; userInfo.N ...
 - 团队项目:二次开发--v.2.1--软件工程
			
原先代码,对于基本对象的Get,Set方法构造函数等方法与实现基本功能的方法统一放到了一起,容易造成代码不清晰,别人比较难阅读的情况.而且其中代码冗余比较多. 改进代码,进行了层次的分析,将基本对象与 ...
 - 2018.07.04 POJ 2398 Toy Storage(二分+简单计算几何)
			
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Description Mom and dad have a problem: their ch ...