1. 实现功能综述
1.1 功能概述
将使用HBuilder 开发的 5+App 项目,通过 jenkins 实现自动化构建ios,生成ipa。
1.2 功能流程图
2. 功能实现
为了更好的理解模板脚本(
mkChange.py
) 修改的内容与构建流程,请先看一次 HBuilderX 官方文档 。
2.1 先决条件
- xxx.p12 证书
- 描述文件
双击 证书安装到打包机器,(安装时选系统)
双击 描述文件在打包机器注册。(闪一下就完了)
2.2 环境说明
- macOS 系统
- 安装 xcode
- macOS 已配置成为 jenkins的从节点,标签为:
ios
,并且节点已连接。
2.3 jenkins 配置流程
注意: **jenkins 构建前 要清除项目的工作空间**
- 先拉取
ios-app-demo
配置模板文件 - 拉取H5项目代码到 ios-app-demo 目录下
- 执行
mkChange.py
修改项目模板 - 进入到 ios 工程目录:
appDemo
,执行build.sh
进行编译、打包、导出的操作
3. 常见问题与注意事项
- Q:打出的包启动后 白屏或闪退
A: 由于 H5项目中的 manifest.json
中有注释导致。 ios build 打包时,无法正确解析 manifest.json
文件,导致找不到app 启动入口。
- 打包时报错: library not found for -lstdc++
因为Xcode10彻底废弃了 libstdc++
。
解决方法:
- 远程build时报错如下: ```bash /usr/bin/codesign —force —sign 6BC623E560D3D8F42391278AE4031851DBC428E1 —preserve-metadata=identifier,entitlements,flags —timestamp=none /Users/admin/Desktop/zjjk/zjjk/zjjkapp/build/Release-iphoneos/zjjkapp.app/Frameworks/GOS.framework /Users/admin/Desktop/zjjk/zjjk/zjjkapp/build/Release-iphoneos/zjjkapp.app/Frameworks/GOS.framework: errSecInternalComponent Command /usr/bin/codesign failed with exit code 1
BUILD FAILED
The following build commands failed: CodeSign build/Release-iphoneos/zjjkapp.app/Frameworks/GOS.framework
解决办法:
```bash
# Sierra中在Keychains下面是没有Login.keychain的,新的名字被改成了Login.keychain-db.所以需要做一个软连接
[ ! -f ~/Library/Keychains/login.keychain-db ] && ln -s ~/Library/Keychains/login.keychain-db ~/Library/Keychains/login.keychain
security unlock-keychain -p asb#1234 ~/Library/Keychains/Login.keychain
4. 参考文档
5. 附:
5.1 jenkins 配置
jenkins build ios for H5+APP.pdf
5.1 ios-app-demo 代码
由于 ios SDK 文件过大,下面代码中已删除,请自行下载ios SDK 到第一层目录