此文基于MUI、HBuilderX、H5+开发的APP本地打包,不适用uniapp。
同款Android的在这里:
MUI、HBuilderX开发APP本地打包(Android篇)
iOS的离线打包感觉比Android的更简单点,或许是因为我本身做iOS原生开发的缘故。但当我看了官方提供的文档仍然摸索了一段时间,对于不是熟悉iOS开发的估计更加迷惑,所以按照我打包的操作步骤记录成文。以便下次回顾,还有以前写了Android离线打包,没有iOS的总感觉不完美。
不管是离线的还是官方所谓的在线云打包,其实都是一样的操作,不过我们的是手动一步步去操作,官方在线的直接跑脚本自动执行。所以不要认为云打包多神奇,它只是苹果开发原生操作上套了一层外衣,但对于一般情况来说它确实方便很多。
准备
- Mac电脑或具备macOS环境的其他电脑
- HBuilderX : 2.5.1.20200103
- iOS SDK : iOSSDK@2.5.1.72774_20200103
- Xcode : Version 11.1 (11A1027)
- 苹果开发者账号(299个人开发者账号、或针对学校教育的账号)
开始
1、首先HBuilderX
导出项目的本地打包APP资源。
com.light.dctt
就是appid
2、下载 sdk iOSSDK@2.5.1.72774_20200103
包含SDK及示例相关。
3、HBuilder-Hello
为打包官方示例,此示例一个全功能的demo,包含各种功能所需的动态库、框架及第三方sdk所以文件比较大。
因为重新建工程要引入的资源、动态库文件太多,有点繁琐。所以直接在这里操作,去掉不需要的部分,添加我们自己的东西。
4、打开工程:修改工程名,项目名等,总之把Hello-HBuilder
改为我们自己的项目名;
- 修改项目名 , 把下面红框的改为项目名
dctt
修改完工程名,一些文件路径肯定也变了,必须对应的修改否则编译提示找不到指定路径的文件。
-
修改名称、路径之后先运行下,确保不会出错。
OK,是原来的效果,说明我们名称路径之类的操作修改没问题。
5、 替换我们的项目代码
原来的代码:
替换后我们的代码:
6、修改工程中appid
其中
com.light.dctt
就是appid , 文件层级必须严格一致。否则不能行。
7、以上修改完成,模拟器运行一下看效果
OK,虽然页面适配有点问题,但说明我们一切操作还正常。
修改APPicon 和启动页图片
xcode 图片资源管理都是在Images.xcassets
中处理的,替换相应的尺寸图片即可,不需要的可以直接删除。
ios实际开发时其他所需的icon资源也是放这里,不过对于目前项目来说没啥用!
plist文件配置相关
dctt-Info.plist相关的配置信息及权限设置都在这里。相当于Android的 AndroidManifest.xml
, 也是一个XML格式的文件。
用到的系统的权限不在这里设置的话,APP内无法启用相关功能。
删除不需要的链接库及第三方sdk
源工程包含的全套面了,定位、支付、推送、蓝牙、通讯录一大堆的功能都有,所以打出包很大,把我们不需要的统统删了吧!
app正式打包发布
- 1、设置证书
我有开发者账号,我要发布,我要打包!
没有账号,这项操作不就可以了。
我的是企业开发者账号,就是它299$ 而且APP打包后不能上App Store的那个。打包后的APP可放自己网站发布,不受苹果限制。这不影响我们示范打包操作。
走到这一步,和原生开发的都一样了,别人怎么样我们就得怎么样,我们必须要有个发布描述文件:
在开发者中心注册该APPID,然后生成证书和发布文件。
如果你不熟悉苹果开发,这个证书的问题估计不好搞定。如果你熟悉苹果开发,这里和容易搞定。所以在此不宜多说。
- 2、打包操作
这里导出IPA , 我是企业证书所以和普通的不一样,选择第三个 。如果是99$的账号 选择第一个 导出 App Store发布。
至此打包完成,可以把发布IPA直接导入到苹果设备或放网上发布供别人下载。
总结
修改文件名注意文件路径,编译路径要保持一致。 APPID 必须和
manifest.json
保持一致。-
以上只是基础的打包流程操作,如果涉及第三方平台调用之类的还要仔细查看相关文档。
- 此文图文较多、步骤详细。按步骤操作打包肯定没问题。但对于APP本身开发优化无济于事。
参考
iOS离线打包:(https://ask.dcloud.net.cn/article/41)
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=fjnklqkwq3pl