为什么要运用离线打包

首先咱们需求知道 ios 本地离线打包是什么,为什么要运用离线打包,而不运用云打包,按官方的说法”App 离线开发工具包,即 App 离线 SDK,是把 App 运转环境(runtime)封装为原生开发调用接口,开发者能够在自己的 Android 及 iOS 原生开发环境装备工程运用,包括 Android 离线开发 SDK 及 iOS 离线开发 SDK”,实际上好处有:

  1. 本地打包,不需等,有时候云打包人数多时你又着急上线时成果看到需求等 30 分钟(夸大的修辞手法,一般也就 5-6 分钟)后才能打包完成,而本地打包只需求生成一下 App 资源,然后进行打包即可
  2. 本地打包没有代码走漏等危险,而且不需求上传证书(尽管 uniapp 是官宣不会走漏,我也非常相信)

1. 基础资料

所谓”工欲善其事,必先利其器”所以咱们需求先了解一些基础资料,这些资料能够协助咱们更好的理解 uniapp 的打包流程。

  1. uniapp 的离线打包流程
  2. ios 离线 sdk
  3. 导入 App 资源
  4. ios 模块装备
  5. 打包发行

以上的这些资料,根本能够完成离线打包,但仍是会遇到一些问题,接下来会罗列一些我遇到的问题

所需资料

  1. 一个审阅经过的企业开发者 developer 账号
  2. 申请好证书和描绘文件
  3. Xcode
  4. Hbuilderx

2. 插件装备问题

2.1 高德地图装备

  1. 文档
  2. 报错:当时运转的基座不包括原生插件[mapSearch],请在 manifest 中装备该插件,从头制造包括该原生插件的自定义运转基。uniapp 供给的离线基座在运用 uni.chooseLocation 进行位置挑选时,离线基座提示不包括原生插件。 原因:文档下面还有一个说明装备,这些依靠库、体系库、依靠资源也需求装备

uniapp ios 本地离线打包(攻略)

2.2 极光推送装备

  1. 文档
  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 ConnectAPP 信息检查

  1. 直接浏览器拜访后会下载一个 txt 文件
  2. 翻开查找 trackViewUrl,获取到参数后的内容也便是一个 https 链接
  3. 将 https:// 替换为 itms:// 或许 itms-apps://
  4. 验证用 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 {
    // 安卓
  }
}

遇到的问题

  1. 在 App 提交审阅是提示:你的 App 包括 NSUserTrackingUsageDescription,这表示它可能会恳求追寻用户。要提交以供审阅,请更新你的 App 隐私答复以注明从此 App 中收集的数据将用于追寻目的,或许更新你的 App 二进制文件并上传新的构建版本。 原因:你在 app 中运用了如 JPush 极光、广告等,会出现此刻你就需求去去更新 App 的隐私协议,然后从头打包上传即可

uniapp ios 本地离线打包(攻略)

  1. 解决 App Store 上架提示您有必要上传 12.9 英寸 iPad Pro(第 2 代)显示屏的截屏 原因:在项目中挑选了多种平台,去项目中进行

uniapp ios 本地离线打包(攻略)

  1. 在装备打包证书时报错:Provisioning profile “XX” doesn’t include signing certificate “xx developer
    原因:在xcode中挑选了手动装备证书和描绘文件,但并不匹配所导致
    解决方案:blog.csdn.net/auccy/artic…

  2. 如果是在 product -> Archive 报错:Profile doesn’t include the selected signing certificate.
    原因:如果在装备证书正常时,可能是钥匙串中有重复过期了证书
    解决方案:将钥匙串和本 app 有关的证书删去,从头导入后,重启 Xcode,从头打包即可