最近一段时间,做了很多关于dcloud的事情。总体的感受就是自己o(╥﹏╥)o了,遇到各种各样的坑!!!下边来总结一下自己的坑,给自己及后来者个提醒。
第一个坑:
xcode(9.3)集成dcloud环境的时候,由于官方Demo版本太low,里面的很多东西都是MRC(手动内存管理),所以集成你的环境之后,会报很多无语的错误。(例:本来数组对象,却崩到数组变成CALyer)只需要在buildseting中将下图属性改为YES。当然,你也可以使用MRC模式,但是所填加的.m都需要手动释放内存。有的第三方库文件是ARC模式需要你在(图二)位置加上-fobjc-arc。
第二个坑:
cocoapods导入第三库后(例如:AFNetworking),运行的话,总是提示找不到链接文件。我先说说自己的错误思路吧。一开始的时候,以为dcloud里面生成的静态库.a或者动态库.framework里面有加入AFNetworking。于是,我自己查看了一下liblibPDRCore.a(终端nm可以打开看里面的实现方法),里面确实有关于AF的代码,如图三。问了官方人员,他也说是有用到AFNetworking的代码,他让我把声明文件导入,不导入实现文件。是可以解决问题,但是pod 其他的第三方库还是会报linker错误。所以,问题在于不是人家dcloud的环境问题,而是我自己工程配置的问题。
后来,对比现有完整工程的配置,发现缺少$(inherited)这个东西,我也不是特别懂这个是啥意思。https://www.crifan.com/xcode_inherited_meaning/ 看这个链接吧。加上这个后,程序运行就没问题了。
第三个坑:在制作差量升级包(wgtu)的时候,压缩成wgtu包的时候是把www和update.xml放在WGTU这个文件夹里,再压缩WGTU,这样子是不行的,正确的方式是选中www和update.xml把他们一起压缩成一个文件,而不是放到一个文件夹里压缩文件夹。(此处感谢dcloud上的木子喵--链接http://ask.dcloud.net.cn/question/11321)。
注:一些关于dcloud的链接
http://ask.dcloud.net.cn/article/182
http://ask.dcloud.net.cn/question/50665 ios 原生开发和5+的界面交互
http://www.html5plus.org/doc/zh_cn/xhr.html 这个是NJS 的库
http://ask.dcloud.net.cn/question/26670 返回的问题
http://ask.dcloud.net.cn/article/102 侧滑返回问题
https://github.com/jinle/gen-wgtu 制作差量升级包插件
//www.greatytc.com/p/90d5fa728861 MAC搭建服务器环境