环境以开发流程

当前项目使用的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,能解决大部分问题。

附件

PackagesApplication

cordova 从xcode7迁移到xcode8的更多相关文章

  1. xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)

    xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...

  2. iOS:xCode7版本运行xCode8.0的代码

    怎么在xCode7版本上运行xCode8.0的代码? 1.右键你的"LaunchScreen.sb"文件并用编辑器打开sb 2.删掉"<capability nam ...

  3. 使用Xcode过程中遇到的问题

    前言:记录一下使用Xcode过程中遇到的问题 1.关于开发者的Team的问题,是选用自己的个人Team还是选用公司的付费的Team(本机环境:Xcode9 + iPad :iOS11.0.3) 问题: ...

  4. WWDC2016-session401-CodeSign大改版

    自动签名机制和手动签名都明显看起来很好用. 自动签名有log 手动签名有具体的错误提示信息. session401 Xcode Signing. 亲,你的眼睛好大 相声演员吗? Yeah,You ar ...

  5. Swift2.3适配Swift3.0时出现的各种问题

    昨晚上一波手贱把我的小5s升到iOS10.如此配套的话,Xcode7.3升级Xcode8.1看来也是势在必行了.公司程序是Swift2.3的,出于对苹果的恐惧迟迟不敢升级.但丑媳妇儿总要见公婆,借这个 ...

  6. xcode7 打开工程错误 This Document requires xcode8.0 or later.

    xcode7 打开工程错误 This Document requires xcode8.0 or later. 场景: xcode7创建的工程,后来安装了xcode8.0,用8打开7的工程跑了一下: ...

  7. Xcode同时兼容Xcode7和Xcode8,两个版本并存,也适用于先升8再安装7

    先吐槽一下之前看到的一个教程,如下: 先在应用程序内,拷贝一份之前的xcode,然后再安装新版本,发现这种安装完成就是在之前上面迭代了  有木有?等于没任何作用 我这边就是不小心先升级了8,然后再安装 ...

  8. Xcode8中Swift3.0适配问题

    写在前面 收到一些小伙伴的来信,觉得可能下边没有表达清楚,先把大家关心的要点在此进行总结,有兴趣的可以看看下边的研究过程,没兴趣的直接看这段即可. Xcode8支持Swift2.3和Swift3.0两 ...

  9. xcode8.0升级之后公司项目遇到的问题

    xcode8升级之后项目遇到了问题,由于这个项目是我中途接手的,遇到的第三方也是自己没有用过的, AQGridViewCell,这个第三方的类主要是用于处理图片的问题,xcode开发工具升级过后,报这 ...

随机推荐

  1. 【Java】接口开发中关于接受和发送json的相关范例

    接受json package com.suneee.scn.wms.web.rocketmq; import java.util.List; import net.sf.json.JSONArray; ...

  2. 洛谷P1352 没有上司的舞会——树形DP

    第一次自己写树形DP的题,发个博客纪念`- 题目来源:P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结 ...

  3. 【JavaScript】离线应用与客户端存储

    一.前言        这章非常重要,由于之后需要负责平台手机APP的日后维护,如何让用户在离线状态下正常使用,以及联网后的数据合并变得非常重要. 二.内容        离线检测 navigator ...

  4. git push要输入密码问题

    git push突然每次都要输入密码了,这个问题困扰了两天,要无密码push,要保证两点. 1.  git clone的url一定得是git开头的,不能是https开头的,这个容易被忽略,github ...

  5. bzoj2213: [Poi2011]Difference(思维题)

       今天颓了一天T T 这题有两种写法... ①预处理出每种字符在原字符串中的位置,枚举两种字符作为最大值和最小值,把这两种字符的坐标归并排序,把最大值设为1,最小值设为-1,求最大子段和.注意因为 ...

  6. P1582 倒水 (数学)

    P1582 倒水 题目描述 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水量相同的瓶子,把 ...

  7. EA画时序图初试

    1.步骤: 1. 新建一个项目: 2. Use Case Model右键-->添加图-->左边选择UML Behavioral,右边选择Sequence: 3. 选择工具栏中的工具,点击工 ...

  8. ACE服务端编程2:ACE跨平台之数据类型和宽字符

    ACE网络库的主要优势之一就是跨平台,ACE提供了操作系统API和编译器级别的跨平台解决方法,使开发人员不用再去关心操作系统和编译器的差异,但因此也带来了ACE的复杂性. ACE网络库的组织结构主要分 ...

  9. update condition 字段报错

    mysql> update tf_user_present set condition="0" where id=1;ERROR 1064 (42000): You have ...

  10. java面试梳理

    自己整理的有关java面试过的问题,有错的请矫正. 1, Spring的核心思想 控制反转和面向切面的编程 2,Spring的核心模块 反向控制与依赖注入.Bean配置以及加载 3,Scope是什么 ...