为什么要运用离线打包
首先咱们需求知道 ios 本地离线打包是什么,为什么要运用离线打包,而不运用云打包,按官方的说法”App 离线开发工具包,即 App 离线 SDK,是把 App 运转环境(runtime)封装为原生开发调用接口,开发者能够在自己的 Android 及 iOS 原生开发环境装备工程运用,包括 Android 离线开发 SDK 及 iOS 离线开发 SDK”,实际上好处有:
- 本地打包,不需等,有时候云打包人数多时你又着急上线时成果看到需求等 30 分钟(夸大的修辞手法,一般也就 5-6 分钟)后才能打包完成,而本地打包只需求生成一下 App 资源,然后进行打包即可
- 本地打包没有代码走漏等危险,而且不需求上传证书(尽管 uniapp 是官宣不会走漏,我也非常相信)
1. 基础资料
所谓”工欲善其事,必先利其器”所以咱们需求先了解一些基础资料,这些资料能够协助咱们更好的理解 uniapp 的打包流程。
以上的这些资料,根本能够完成离线打包,但仍是会遇到一些问题,接下来会罗列一些我遇到的问题
所需资料
- 一个审阅经过的企业开发者 developer 账号
- 申请好证书和描绘文件
- Xcode
- Hbuilderx
2. 插件装备问题
2.1 高德地图装备
- 文档
- 报错:当时运转的基座不包括原生插件[mapSearch],请在 manifest 中装备该插件,从头制造包括该原生插件的自定义运转基。uniapp 供给的离线基座在运用 uni.chooseLocation 进行位置挑选时,离线基座提示不包括原生插件。 原因:文档下面还有一个说明装备,这些依靠库、体系库、依靠资源也需求装备
2.2 极光推送装备
- 文档
- 报错:当时运转的基座不包括原生插件[JG-JPush],请在 manifest 中装备该插件,从头制造包括该原生插件的自定义运转基座 按文档装备应该是没有问题的,但是仍是遇到这种情况你需求看一下是否运用了模拟器运转的,运用真机运转即可
3. 装备 app 模块等问题
在运转中提示:打包时未添加 xxx 模块 请根据“怎么装备模块/三方 SDK”装备即可
ios 更新跳转到 App Store 指定 app 链接
iTunes 供给了接口可查询到 app 在 App Store 上的信息
国外:itunes.apple.com/lookup?id=x…
国内:itunes.apple.com/cn/lookup?i…
xxx 为你的应用 ID,可在App Store Connect上 APP 信息检查
- 直接浏览器拜访后会下载一个 txt 文件
- 翻开查找 trackViewUrl,获取到参数后的内容也便是一个 https 链接
- 将 https:// 替换为 itms:// 或许 itms-apps://
- 验证用 ios 的手机,在 safari 翻开这个链接,会弹窗提示跳转到 App Store
麦克风授权问题
ios 麦克风授权是弹窗提示用户敞开的,添加这以下代码获取麦克风授权
const appAuthorizeSetting = uni.getAppAuthorizeSetting();
const isAuth = appAuthorizeSetting.microphoneAuthorized === "authorized";
if (!isAuth) {
if (uni.getSystemInfoSync().platform === "ios") {
let avaudiosession = plus.ios.import("AVAudioSession");
let avaudio = avaudiosession.sharedInstance();
avaudio.requestRecordPermission(() => {
console.log("授权麦克风权限完成");
});
} else {
// 安卓
}
}
遇到的问题
- 在 App 提交审阅是提示:你的 App 包括 NSUserTrackingUsageDescription,这表示它可能会恳求追寻用户。要提交以供审阅,请更新你的 App 隐私答复以注明从此 App 中收集的数据将用于追寻目的,或许更新你的 App 二进制文件并上传新的构建版本。 原因:你在 app 中运用了如 JPush 极光、广告等,会出现此刻你就需求去去更新 App 的隐私协议,然后从头打包上传即可
- 解决 App Store 上架提示您有必要上传 12.9 英寸 iPad Pro(第 2 代)显示屏的截屏 原因:在项目中挑选了多种平台,去项目中进行
-
在装备打包证书时报错:Provisioning profile “XX” doesn’t include signing certificate “xx developer
原因:在xcode中挑选了手动装备证书和描绘文件,但并不匹配所导致
解决方案:blog.csdn.net/auccy/artic… -
如果是在 product -> Archive 报错:Profile doesn’t include the selected signing certificate.
原因:如果在装备证书正常时,可能是钥匙串中有重复过期了证书
解决方案:将钥匙串和本 app 有关的证书删去,从头导入后,重启 Xcode,从头打包即可