IT评测·应用市场-qidao123.com技术社区
标题:
Uniapp iOS 当地离线打包(具体流程)
[打印本页]
作者:
怀念夏天
时间:
2025-1-2 01:40
标题:
Uniapp iOS 当地离线打包(具体流程)
一、简介
App 离线 SDK 暂时不支持 Swift,依然使用的是 Object-C,未来不清楚。
uniapp 提供了 云打包 与 当地打包 两种方案,云打包 必要排队且另有次数限定,当地打包 则就没有这些限定,而且会 当地打包 对开发 原生插件 有很大的帮助。
细节:必要 Xcode 打包的时候,记得先通过工具栏的 Product -> 先 Clean Buidl Folder... -> 再 Build -> 最后再打包或运行,生成基座或者测试离线包都实用这套流程。
可以使用快捷键,先 Command + Shift + K,再 Command + B,再 打包或运行。
二、准备工作
按照官方文档中的
开发环境
下载好开发工具与 SDK 工程即可:iOS 离线官方文档地点。
注意当前开发工具 HBuilderX 版本跟下载的 SDK 工程要求是否对应
双击工程文件夹内的 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。
2、测试项目正常运行后,则进行当地打包,获得编译后的源码。
3、看控制台,期待编译完成,去给出的目录找到编译后的源码。
4、替换离线打包工程中的源码
5、修改 control 文件里面的 appid,着实离线资源文件夹名称就是 appid,可以核对下免得堕落。
四、离线工程的调整
代码导入后,必要进行一些离线打包工程上的细节调整,注意:没有开发者账号是不影响你当地运行模拟器跟真机调试的,运行真机是临时证书,偶然效性的。
包名替换(例如 com.dzm.test),及启动自动证书设置,未调整之前是这样的:
切到 Signing & Capabilities 进行设置,Team 账号不登录不影响当地模拟器测试,但影响真机调试与发包。
设置后再切回 General 看看
设置 App 名称,同 Uniapp 中的应用名称,也就是打包或运行到装备上显示的,修改 CFBundleDisplayName 就是 App 名称,官方提供了中英文版本设置:
如果不想这样设置,也可以直接把这个 InfoPlist.strings 删除,或者去除内部所有字段,因为 InfoPlist.strings 中的 CFBundleDisplayName 优先级更高,移除后去 info 设置中添加一个 Bundle display name 结果一样:
如果遇到展示问题,可以干脆直接将所有的 DisplayName 都写成一样的,包括 General、InfoPlist、Info 里面都保持同等,可以自行决定,但是按上面的设置应该不会有问题,这条仅做为备选方案。
然后运行模拟器即可,可能会遇到报错 # iOS Building for ‘iOS-simulator‘, but linking in object file xxx 点这里进行解决,再重新运行即可。
模拟器运行成功后,会提示报错 appkey 设置错误,设置一下 appkey,必要申请一下,有则可以直接拷贝:
1、打开 Uniapp 开发者后台,登录一下。
2、点击应用名称进入,找到 各平台信息(离线打包 Key 管理已经迁移到这里面),创建一个 iOS 平台的,每个平台都只能单独创建,不能共用。
3、点击 新增 后,提示填内容即可,点击 提交
4、在列表中点击 创建离线 Key,然后点击 查看离线 Key,拷贝即可
5、拷贝好后,回到 Xcode 的 Info 设置中更换 appkey,找 dcloud_appkey 替换它的值,不要找错了,其他的什么 ID 先不要管,做到功能了再去替换。
如果没有找到 dcloud_appkey,可以通过鼠标放到恣意一行上悬浮,出来 + 号,添加一行,填入 dcloud_appkey,并在背面的值上填入拷贝好的 key 也是一样的。
6、重新运行项目即可,可以删除手机或模拟器中的 app 后再重新运行。
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. 解决方案。
解决后就是这样的:
在手机上打开 设置 -> 隐私与安全性 -> 开发者模式 打开,会自动重新启动手机。
连接电脑与手机,然后在项目中选择自己的真机装备,运行即可,会开始给手机安装调试组件,期待运行成功即可。
安装 app 成功后,这种情况下还会弹出是 不受信任的证书,必要去 设置 -> 通用 -> VPM与装备管理 里面找到不受信任的证书,点击信任,然后回到桌面打开应用即可,或者用 Xcode 重新运行自动打开也行。
六、打包
附:# iOS Xcode 打包和发版【具体流程】,正式线上包还必要按下面的要求进行调整再打包,测试包直接按下面的打包 ipa 拿出来用就行。
平凡当地打包 ipa
1、Product -> Archive 直接打包
2、如果有弹出授权窗口,直接输入密钥,点击始终答应。
3、导出 ipa,这一步必须必要付费了的 开发者账号,之前登录自己的账号但不是 开发者账号 的可不导出。
打包 ipa 发布到 AppStore 细节
1、必要移除一下 control.xml 中的 debug=true 设置,如果是开发测试中则无所谓,这个设置会输出调试日记:
2、确保 Run 与 Archive 编译状态为 Release,这是正式线上包必须要确认的,但当打包完成后,测试运行的时候 Run 还是必要恢复成 Debug。
3、Product -> Archive 直接打包
4、如果有弹出授权窗口,直接输入密钥,点击始终答应。
5、发包或导出 ipa,这一步必须必要付费了的 开发者账号,之前登录自己的账号但不是 开发者账号 的可不导出。
七、离线自定义基座打包
Uniapp iOS 离线生成自定义基座(具体流程)
Uniapp iOS 离线生成自定义基座(官方文档)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4