Uniapp iOS 当地离线打包(具体流程)
一、简介[*] App 离线 SDK 暂时不支持 Swift,依然使用的是 Object-C,未来不清楚。
[*] uniapp 提供了 云打包 与 当地打包 两种方案,云打包 必要排队且另有次数限定,当地打包 则就没有这些限定,而且会 当地打包 对开发 原生插件 有很大的帮助。
https://i-blog.csdnimg.cn/direct/8da22595bb4b400da2ed46406fbd5430.png
[*] 细节:必要 Xcode 打包的时候,记得先通过工具栏的 Product -> 先 Clean Buidl Folder... -> 再 Build -> 最后再打包或运行,生成基座或者测试离线包都实用这套流程。
可以使用快捷键,先 Command + Shift + K,再 Command + B,再 打包或运行。
二、准备工作
[*] 按照官方文档中的 开发环境 下载好开发工具与 SDK 工程即可:iOS 离线官方文档地点。
https://i-blog.csdnimg.cn/direct/42a5afdb938a4084993156bced46ff22.png
[*] 注意当前开发工具 HBuilderX 版本跟下载的 SDK 工程要求是否对应
https://i-blog.csdnimg.cn/direct/575b512cf7a44c588e0452a524d23ba1.png
[*] 双击工程文件夹内的 HBuilder-Hello.xcodeproj 打开项目,获取拖入 Xcode 运行起来项目。
三、创建 Uniapp 测试项目
[*] 使用 HBuilderX 或 Cli 创建一个测试项目 demo,然后运行到测试机或者模拟器。附:Uniapp 运行到 iOS 真机或模拟器。
1、确认当前模拟器或者真机支持的 cpu 类型,然后进行勾选,这里就是设置要打包的 apk 必要支持哪些 cpu 类型的手机,全要支持可以全支持。
对于 iOS 开发,通常使用 arm64 架构(当前所有最新的 iOS 装备都支持),而在 模拟器 上运行时可能会使用 x86_64 或 arm64e(Apple Silicon Mac)。在开发跨平台应用,可以根据目标平台调整适配策略:
[*] Android:必要指定 armeabi-v7a、arm64-v8a、x86 等。
[*] iOS:通常只必要支持 arm64 即可,如果必要运行到模拟器则必要勾上 x86。
https://i-blog.csdnimg.cn/direct/511c9891560e4c58b1a3140690cf51bc.png
2、测试项目正常运行后,则进行当地打包,获得编译后的源码。
https://i-blog.csdnimg.cn/direct/69b1e670d9ea4ea3b008d4f089d793c9.png
3、看控制台,期待编译完成,去给出的目录找到编译后的源码。
https://i-blog.csdnimg.cn/direct/a271803437b8462d9d3ae2cf5bb7338d.png
4、替换离线打包工程中的源码
https://i-blog.csdnimg.cn/direct/f1d7685803dd41fc9973cc207893b05d.png
5、修改 control 文件里面的 appid,着实离线资源文件夹名称就是 appid,可以核对下免得堕落。
https://i-blog.csdnimg.cn/direct/4995b44c76894ab1b771887fc457f168.png
四、离线工程的调整
[*] 代码导入后,必要进行一些离线打包工程上的细节调整,注意:没有开发者账号是不影响你当地运行模拟器跟真机调试的,运行真机是临时证书,偶然效性的。
[*] 包名替换(例如 com.dzm.test),及启动自动证书设置,未调整之前是这样的:
https://i-blog.csdnimg.cn/direct/bb278b677ea149378711d68c166254aa.png
切到 Signing & Capabilities 进行设置,Team 账号不登录不影响当地模拟器测试,但影响真机调试与发包。
https://i-blog.csdnimg.cn/direct/7dde0d60a4644ef0a3968770fc2b4ab1.png
设置后再切回 General 看看
https://i-blog.csdnimg.cn/direct/0440242ade96404391a8ed0622c304b8.png
[*] 设置 App 名称,同 Uniapp 中的应用名称,也就是打包或运行到装备上显示的,修改 CFBundleDisplayName 就是 App 名称,官方提供了中英文版本设置:
https://i-blog.csdnimg.cn/direct/5d0ce219120e4419a26282a0ce66ab53.png
如果不想这样设置,也可以直接把这个 InfoPlist.strings 删除,或者去除内部所有字段,因为 InfoPlist.strings 中的 CFBundleDisplayName 优先级更高,移除后去 info 设置中添加一个 Bundle display name 结果一样:
https://i-blog.csdnimg.cn/direct/03eb5e6cb2294c5bab4f8d637499c4f8.png
如果遇到展示问题,可以干脆直接将所有的 DisplayName 都写成一样的,包括 General、InfoPlist、Info 里面都保持同等,可以自行决定,但是按上面的设置应该不会有问题,这条仅做为备选方案。
[*] 然后运行模拟器即可,可能会遇到报错 # iOS Building for ‘iOS-simulator‘, but linking in object file xxx 点这里进行解决,再重新运行即可。
https://i-blog.csdnimg.cn/direct/5fc4eb4a1efa4ad78a8d8064cccc2e5e.png
[*] 模拟器运行成功后,会提示报错 appkey 设置错误,设置一下 appkey,必要申请一下,有则可以直接拷贝:
1、打开 Uniapp 开发者后台,登录一下。
https://i-blog.csdnimg.cn/direct/b17748b752364810b30819e99d087357.png
https://i-blog.csdnimg.cn/direct/9cf253f525ce445ca7e1ec7af3882fb6.png
2、点击应用名称进入,找到 各平台信息(离线打包 Key 管理已经迁移到这里面),创建一个 iOS 平台的,每个平台都只能单独创建,不能共用。
https://i-blog.csdnimg.cn/direct/85ee9ad2b222469cab7f60ae4f9e8050.png
3、点击 新增 后,提示填内容即可,点击 提交
https://i-blog.csdnimg.cn/direct/22a1471e7cfc4ca39394c5e4aa1bd903.png
4、在列表中点击 创建离线 Key,然后点击 查看离线 Key,拷贝即可
https://i-blog.csdnimg.cn/direct/6d954a27eee64817b4b272c5505075cf.png
https://i-blog.csdnimg.cn/direct/ff032b6c8c5c4e92845b00e479c7f169.png
5、拷贝好后,回到 Xcode 的 Info 设置中更换 appkey,找 dcloud_appkey 替换它的值,不要找错了,其他的什么 ID 先不要管,做到功能了再去替换。
如果没有找到 dcloud_appkey,可以通过鼠标放到恣意一行上悬浮,出来 + 号,添加一行,填入 dcloud_appkey,并在背面的值上填入拷贝好的 key 也是一样的。
https://i-blog.csdnimg.cn/direct/063da267d5cd4976a95fb358e36df318.png
https://i-blog.csdnimg.cn/direct/480bb12592114654a084a794426f76a0.png
6、重新运行项目即可,可以删除手机或模拟器中的 app 后再重新运行。
https://i-blog.csdnimg.cn/direct/0329053294d24108b659ac8244b6a1ae.png
7、如果运行后,有警告先不管,例如 using an empty LLDB target which can cause slow memory reads from remote devices. 这个是使用模拟器的警告,真机上没有影响。
五、运行到真机
[*] 可以先登录自己的 Apple账号 以私人账号的身份使用下临时的证书,登录是的非开发者账号进行当地测试,这样能运行到真机,但不能导出 ipa 包,不能发布,如果证书没生成成功,可以切换一下上面的 Automatically manage signing 开关,或者重启一下 Xcode。这边生成证书后但 Debug 环境报了警告:附 # iOS xxx has conflicting provisioning settings. 解决方案。
https://i-blog.csdnimg.cn/direct/a1efe6c2453e4b1bbd9490e32c7fc20a.png
解决后就是这样的:
https://i-blog.csdnimg.cn/direct/50af7c9b8b184280b4ffda57a125412b.png
[*] 在手机上打开 设置 -> 隐私与安全性 -> 开发者模式 打开,会自动重新启动手机。
[*] 连接电脑与手机,然后在项目中选择自己的真机装备,运行即可,会开始给手机安装调试组件,期待运行成功即可。
安装 app 成功后,这种情况下还会弹出是 不受信任的证书,必要去 设置 -> 通用 -> VPM与装备管理 里面找到不受信任的证书,点击信任,然后回到桌面打开应用即可,或者用 Xcode 重新运行自动打开也行。
https://i-blog.csdnimg.cn/direct/d63804b8ea8742dd990c6b4eedababf6.png
https://i-blog.csdnimg.cn/direct/7fd481d40abe4063862dba6e664e2ade.png
六、打包
[*] 附:# iOS Xcode 打包和发版【具体流程】,正式线上包还必要按下面的要求进行调整再打包,测试包直接按下面的打包 ipa 拿出来用就行。
[*] 平凡当地打包 ipa
1、Product -> Archive 直接打包
https://i-blog.csdnimg.cn/direct/c17141d1a1e04b498db2a0414bd082dd.png
2、如果有弹出授权窗口,直接输入密钥,点击始终答应。
https://i-blog.csdnimg.cn/direct/1135f642831a4bd3b35b9f0693dc70eb.png
3、导出 ipa,这一步必须必要付费了的 开发者账号,之前登录自己的账号但不是 开发者账号 的可不导出。
https://i-blog.csdnimg.cn/direct/39d0617c767e4bcd929101ea76604416.png
https://i-blog.csdnimg.cn/direct/8bedb0e702f54c9ca1d3accabf718e81.png
[*] 打包 ipa 发布到 AppStore 细节
1、必要移除一下 control.xml 中的 debug=true 设置,如果是开发测试中则无所谓,这个设置会输出调试日记:
https://i-blog.csdnimg.cn/direct/45aaeb31230f47d99329c841779d1f3c.png
2、确保 Run 与 Archive 编译状态为 Release,这是正式线上包必须要确认的,但当打包完成后,测试运行的时候 Run 还是必要恢复成 Debug。
https://i-blog.csdnimg.cn/direct/40de1dcefd134afb9a2d39fcd398f15d.png
https://i-blog.csdnimg.cn/direct/d78eb7e01a8543758e7a0623a29456d0.png
https://i-blog.csdnimg.cn/direct/78d1f2b8fbcb4dc799b09965d674ed77.png
3、Product -> Archive 直接打包
https://i-blog.csdnimg.cn/direct/67caea3d40e04d768d03aa919048dbc0.png
4、如果有弹出授权窗口,直接输入密钥,点击始终答应。
https://i-blog.csdnimg.cn/direct/a59b0de4053947a0bdd1505752810892.png
5、发包或导出 ipa,这一步必须必要付费了的 开发者账号,之前登录自己的账号但不是 开发者账号 的可不导出。
https://i-blog.csdnimg.cn/direct/a094fdc6ad80433288dbd258bcb5f59d.png
https://i-blog.csdnimg.cn/direct/412a5f83e60042428872ad084569b739.png
七、离线自定义基座打包
[*] Uniapp iOS 离线生成自定义基座(具体流程)
[*] Uniapp iOS 离线生成自定义基座(官方文档)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]