cordova 从xcode7迁移到xcode8
环境以开发流程
当前项目使用的cordova环境
cordova 6.1.1
cordova-ios 3.9.2(vs15自动装的不知道在哪能改,所以考虑升级到vs17,能够手动指定)
cordova-android 5.1.1
当前开发环境 windows 10 + vs15
编译环境 mac + xcode 7.3.1 + remotebuild
在windows上发出编译指令,vs帮忙打包发送数据到mac,remotebuild接受到数据,使用xcode打包完成之后,vs把打好的包下载回来并解压好,如果需要再帮忙给安装到设备上(vs安装过程会先删除设备上的app然后再安装,这个过程会上设备中的app数据也被删掉,所以我一般不用。我使用itools手动覆盖安装)
起因
之前插件中有swift写的,当时只能在xcode7上进行开发测试,所以只能选用低版本的swift。开发完成之后用归档的方式进行打包,安装到设备上会出现闪退的问题,由于时间问题,插件项目搁置。
近期又需要开发ios插件,对objective-c实在无爱,所以再次预选了swift。然后就开始测试swift插件在xcode8上能否成功通过。
windows环境准备
vs 17不多说,没啥曲折的。
jdk要求8或更高,64位的也能用了
在config.xml中可以修改cordova-ios的版本,我选择的是次新版本4.3.1(测试时最新版本是4.4.0)。cordova版本6.3.1未作修改。
然后配置build.json 。这个是重点,是能在xcode8上自动编译成功的关键。主要是 developmentTeam 参照下面地址
http://cordova.apache.org/docs/en/7.x/guide/platforms/ios/index.html#signing-an-app
我们的项目使用的sass,如果报错说找不到某个版本的 binding.node ,来这里找 https://github.com/sass/node-sass/releases
mac环境准备
删除已有的xcode7.3.1,在https://developer.apple.com/download/more/(需要登录)找到xcode 8.3.2(当前最新,要求系统在10.12以上)并下载,我直接放到桌面双击进行安装。
升级remotebuild到最新版本。
像我没有使把xcode安装到默认位置的需要执行下面命令,不然remotebuild找不到xcode
sudo xcode-select --switch /…/Xcode.app/Contents/Developer
下面的问题忘记错误详情是啥了,碰到问题后要仔细查看错误日志。
拷贝PackagesApplication到/…/Xcode.app/Coneten/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
并加执行权限
chmod +x PackagesApplication
vs cordova项目升级
vs15的cordova项目使用vs17(我的版本15.2 26430.4)打开就会提示要不要升级过来,点击是就升上来了。
cordova-simulate问题
vs15用的是ripple,但这个项目已经停止维护了。cordova-simulate是微软开发的替代版本,功能大致相同,都是在浏览器中模拟设备,方便开发调试。
这里还有几个已知的问题关于 cordova-simulate 的问题。
1、当动态添加header标签时,会有异常,并阻断js执行。已经提了issue https://github.com/Microsoft/cordova-simulate/issues/237。 可用div来替换。
2、模拟器进行屏幕转向。这个应该算是缺失的功能吧,可用 chrome 的 device toolbar 来替代。
other
把插件用的swift语法都改成3.0版本的,用归档的方式打包没有闪退,功能待进一步测试。
在改语法的过程中编译的错误,拿着详情google,不是百度,google,能解决大部分问题。
附件
cordova 从xcode7迁移到xcode8的更多相关文章
- xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)
xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...
- iOS:xCode7版本运行xCode8.0的代码
怎么在xCode7版本上运行xCode8.0的代码? 1.右键你的"LaunchScreen.sb"文件并用编辑器打开sb 2.删掉"<capability nam ...
- 使用Xcode过程中遇到的问题
前言:记录一下使用Xcode过程中遇到的问题 1.关于开发者的Team的问题,是选用自己的个人Team还是选用公司的付费的Team(本机环境:Xcode9 + iPad :iOS11.0.3) 问题: ...
- WWDC2016-session401-CodeSign大改版
自动签名机制和手动签名都明显看起来很好用. 自动签名有log 手动签名有具体的错误提示信息. session401 Xcode Signing. 亲,你的眼睛好大 相声演员吗? Yeah,You ar ...
- Swift2.3适配Swift3.0时出现的各种问题
昨晚上一波手贱把我的小5s升到iOS10.如此配套的话,Xcode7.3升级Xcode8.1看来也是势在必行了.公司程序是Swift2.3的,出于对苹果的恐惧迟迟不敢升级.但丑媳妇儿总要见公婆,借这个 ...
- xcode7 打开工程错误 This Document requires xcode8.0 or later.
xcode7 打开工程错误 This Document requires xcode8.0 or later. 场景: xcode7创建的工程,后来安装了xcode8.0,用8打开7的工程跑了一下: ...
- Xcode同时兼容Xcode7和Xcode8,两个版本并存,也适用于先升8再安装7
先吐槽一下之前看到的一个教程,如下: 先在应用程序内,拷贝一份之前的xcode,然后再安装新版本,发现这种安装完成就是在之前上面迭代了 有木有?等于没任何作用 我这边就是不小心先升级了8,然后再安装 ...
- Xcode8中Swift3.0适配问题
写在前面 收到一些小伙伴的来信,觉得可能下边没有表达清楚,先把大家关心的要点在此进行总结,有兴趣的可以看看下边的研究过程,没兴趣的直接看这段即可. Xcode8支持Swift2.3和Swift3.0两 ...
- xcode8.0升级之后公司项目遇到的问题
xcode8升级之后项目遇到了问题,由于这个项目是我中途接手的,遇到的第三方也是自己没有用过的, AQGridViewCell,这个第三方的类主要是用于处理图片的问题,xcode开发工具升级过后,报这 ...
随机推荐
- 【刷题】BZOJ 3172 [Tjoi2013]单词
Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. Input 第一个一个整数N,表示有多少个单词,接下来N ...
- 【BZOJ4912】天才黑客(最短路,虚树)
[BZOJ4912]天才黑客(最短路,虚树) 题面 BZOJ 洛谷 题解 \(Anson\)爷讲过的题目,然而我还是不会做 只有照着\(zsy\)的程序打我才会做....果然太弱了. 这道题目显然是把 ...
- 【BZOJ1566】【NOI2009】管道取珠(动态规划)
[BZOJ1566][NOI2009]管道取珠(动态规划) 题面 BZOJ 题解 蛤?只有两档部分分.一脸不爽.jpg 第一档?爆搜,这么显然,爆搜+状压最后统计一下就好了 #include<i ...
- 【51Nod1386】双马尾机器人Description 解题报告
[51Nod1386]双马尾机器人Description 给定\(n\)和\(k\),我们要在\(1,2,3,...,n\)中选择若干的数,每一种选择的方案被称为选数方案. 我们定义一种选数方 ...
- CentOS7.4 删除virbr0虚拟网卡
在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡,这个是因为在虚拟化中有使用到libvirtd服务生成的,如果不需要可 ...
- bzoj4144【AMPPZ2014】Petrol
题解: 首先注意到起点和终点都是加油站; 假设中途经过某个非加油站的点u,u连到v,离u最近的加油站是x,那么从u到x加油后回到u,再到v一定不比直接从u到v差: 因 ...
- Introducing my blog
作为一名计算机专业的学生,在我的博客中我会记录以下几方面的内容: 1.在阅读各类专业书籍的过程中,遇到了一些自己通过很大努力才思考.解决出来的问题/知识/概念,我会通过我自己的讲解将这些问题较为全面. ...
- 【OpenCV】SIFT原理与源码分析
SIFT简介 Scale Invariant Feature Transform,尺度不变特征变换匹配算法,是由David G. Lowe在1999年(<Object Recognition f ...
- laravel 5.1 Eloquent常见问题
1.新增一条记录以及判断是否新增成功 $instance = XxxModel::create(['a' => 1, 'b' => 2]); if ($instance->exist ...
- go defer注意点,很容易出错的!!!
1:defer是在return之前执行的 函数返回的过程是这样的:先给返回值赋值,然后调用defer表达式,最后才是返回到调用函数中 返回值 = xxx 调用defer函数 空的return fun ...