uniapp2xcode 命令参考
把 HBuilderX 的 uni-app 工程和 DCloud iOS 离线 SDK 导出成 Xcode 工程,之后用 kxbuild 本地编译、调试和打包。
用法 uniapp2xcode --project <uni-app 工程> --sdk <iOS 离线 SDK> --output <输出目录> [参数]。uniapp2xcode 是与 kxbuild 一起安装的独立程序,没有子命令。从开发到上架的完整流程见 uni-app 技术栈页。
参数
| 参数 | 说明 |
|---|---|
| -p, --project DIR | HBuilderX 的 uni-app 工程目录,含 manifest.json,必填 |
| --sdk DIR | DCloud iOS 离线 SDK 根目录,含 HBuilder-Hello/、SDK/ 和 uniapp.podspec(HBuilderX 5.13 起的 SDK),必填,从 iOS 离线 SDK 下载页下载 |
| -o, --output DIR | 生成的 Xcode 工程目录,必填 |
| --clean | 先清空输出目录再导出 |
| --dcloud-appkey KEY | DCloud 的 App Key,必填,没有它 App 启动时会报 AppKey 错误。在 dev.dcloud.net.cn 按 Bundle ID 申请,也可以写在 nativeResources/ios/Info.plist 的 dcloud_appkey 中 |
| --bundle-id ID | Bundle ID,nativeResources/ios/Info.plist 中没有时必填 |
| --display-name NAME | 主屏幕上显示的 App 名 |
| --version-name / --version-code | 覆盖 manifest.json 中的版本号和构建号 |
| --team-id ID | 写入工程的开发团队 ID |
| --hbx DIR | HBuilderX 安装目录,不填自动查找 |
| --skip-build | 不重新编译页面,直接用已有的编译结果 |
| --force-build | 已有编译结果也重新编译页面 |
| --version | 打印版本 |
导出
导出时会调用 HBuilderX 编译页面,再和 SDK 一起生成 Xcode 工程,manifest.json 里勾选的模块用 CocoaPods 装好。应用名称、版本、图标、权限描述取自 manifest.json,额外的 Info.plist 项写进 uni-app 工程的 nativeResources/ios/Info.plist,每次导出都会应用。生成的工程是输出目录下的 HBuilder-Hello\HBuilder-Hello.xcworkspace。
当前 SDK 里没有或链接不了的模块会跳过并在导出结束时列出,例如 5.26 版 SDK 的实人认证。模块也可以导出后在 HBuilder-Hello\Podfile 的 uniapp_subspecs 里增减,再在该目录运行 pod install。
> uniapp2xcode --project D:\work\myuniapp --sdk D:\sdk\HBuilder-iOS-SDK --output D:\work\myuniapp-ios --bundle-id com.example.myapp --dcloud-appkey 你的AppKey --clean在 HBuilderX 中改完页面代码后,重新运行同一条命令,改动才会进入 iOS 工程。
导出之后
输出目录中的 .xcworkspace 就是普通的 iOS 工程,先体检,再编译或在 VS Code 中调试。
> kxbuild doctor D:\work\myuniapp-ios\HBuilder-Hello\HBuilder-Hello.xcworkspace> kxbuild build D:\work\myuniapp-ios\HBuilder-Hello\HBuilder-Hello.xcworkspace -s HBuilder -c Release