先说我的观点:现在官方提供的离线打包 SDK,里面的 HBuilder-Hello 并不适合引导产品化的 app 打包操作。
HBuilder-Hello 作为一个演示项目,功能配置很全,对于新用户了解 HBuilder 的能力边界很有帮助,对于在实际开发过程中遇到的某个功能模块的配置使用问题也会有很好的参考意义。
我们的开发团队对于 H5 比较熟悉,而对于 Android/iOS 的原生开发环境并不熟悉,仅限于安装构建环境、创建缺省项目、build、export... 而已。我想,绝大部分选择了 HBuilder 这种“H5 混合模式”来开发移动端应用的开发者可能都差不多是这种情形吧。
HBuilder 确实很强大,所以开发过程本身进行得比较顺利,而在离线打包的环节遇到了不少麻烦。HBuilder-Hello 是一个大而全的套装集合,打包后接近 20M,而一个不使用任何第三方功能模块的 app 最终打包可能不到 3M。然而,从导入 HBuilder-Hello 开始做减法,把第三方功能模块一个一个摘干净,这对于一个并不是特别熟悉原生开发环境的人来说是相当痛苦的。
中间我曾经想改变思路,从零开始做加法,新建一个空项目,再把 Pandora 引进来,但实际结果仍然是步步坎坷。原因很简单,第一我对原生开发环境并不熟悉(Google 的 Android Studio 还算相对简单,Apple 的 XCode 复杂得多),第二我对 HBuilder(或者说是 Pandora)的结构布局并不了解。
虽然是一路跌跌撞撞,但终于还是走下来了。为了对后来者有所帮助,我希望 DCloud 能够对离线打包的支持做一些改进。就我个人的实践体会来说,一个有效的离线打包指南应该包括下面这些内容:
0. 在“离线打包 SDK”中提供一个最简单的 HBuilder-blank 项目,可以没有任何实际功能,但要凸显出如何修改 app 名称、版本、icon、splash。
1a. 在原生开发环境中新建一个空项目,把 HBuilder-blank 项目中的内容分别复制到适当的位置。
1b. 在原生开发环境中打开 HBuilder-blank,并设置修改 app 名称、版本、icon、splash(这个相对简单的事情对于新手来说其实挺茫然的)。
2. 编译、运行、打包、导出。
3. 当需要引入一个第三方功能模块的时候,需要做哪些事情(复制文件、在原生开发环境中的设置、修改 manifest.json 文件)。
其中第 2 步的内容纯粹是原生开发环境的事情,简单提及即可,而其他内容则只能拜托 DCloud 详细提供了,因为这些知识在别的地方是找不到的。
关于第 3 步的内容,现在官方给出的 Feature-Android.xls 和 Feature-iOS.xls 已经很完整地列出了“有哪些”,但对于“怎么做”还缺少一点更直观的引导。
最后再感慨一下,HBuilder 是一个非常用心的产品,希望越做越好!
木子喵
太感谢啦!~
2016-01-20 10:23
GaGada
为什么导不进eclipse啊?
2016-01-20 15:20
GaGada
回复 木子喵:你的能导进eclipse吗?
2016-01-20 15:34
木子喵
回复 GaGada:可以呀,是你的eclipse之前有Hbuilder-Hello重名了所以导不进去吧?改一下名字就好了~
2016-01-20 17:09
GaGada
回复 木子喵:那你离线打包搞定了没?
2016-01-26 10:06
木子喵
回复 GaGada:用clean这个有问题,之前的基座没问题
2016-01-27 20:25
雷穆天
你好。我在用了你的Clean。然后发现XCode出现报错提示。
"_OBJCCLASS$_ZipArchive",referenced from:
Objc-class-ref in liblibPDRCore.a(DCSAAppResManager.o)
Objc-class-ref in liblibPDRCore.a(PDRCoreAppManager.o)
Objc-class-ref in liblibPDRCore.a(PDRCoreApp.o)
Symbol(s) not found for architectrue x86_64
请问这个是要加什么框架进去,还是要怎么操作啊?如何解决这个问题?
2016-04-13 12:43