Uniapp iOS 离线生成自定义基座(详细流程)

一、前置配置

  • Uniapp 通过都是通过 云打包 的方式打包或生成自定义基座,但都需要排队。

  • 所以有些人选择离线打包,既然可以离线打包,那么离线打个基座也是可以的,而且离线自定义基座支持 uniappandroid studio 两个工具上同时联调或打断点调试。

  • 根据 # Uniapp iOS 本地离线打包(详细流程) 配置好离线打包,跑通流程后,在这个基础上稍微做下调整即可。

二、离线打包基座配置

  • 附:Uniapp iOS 离线生成自定义基座(官方文档)

  • 根据官方文档自定义基座要求,需要对 control.xml 进行调整,这样可以看到调试日志。

     <?xml version="1.0" encoding="utf-8"?>
    <HBuilder debug="true" syncDebug="true" version="1.9.9.81498">
        <apps>
            <app appid="__UNI__E9196C5" appver="1.0.1"/>
        </apps>
    </HBuilder>
    

    在这里插入图片描述

  • 确保 Xcode 工程的 Bundle identifier 不为 io.dcloud.HBuidler

  • 在原生工程里找到 info.plist 文件并增加一项 Application supports iTunes file sharing = YES,随便找一行就会出来 + 号,加一行填入即可,如下图:

    在这里插入图片描述

    在这里插入图片描述

  • 确保原生工程里 Pandora 文件夹下的 apps 文件夹里只有一个文件夹(文件夹的名称和里面的manifestid 值相同),这一条在离线打包里面弄了,其实就是导入 Uniapp 的素材文件到 Xcode 工程。

  • 确保 control.xml 文件里的 appid 的值和 apps 目录下的第一个文件夹的名称一致,这一条在离线打包里面弄了。

  • 确保 HBuilderX 里要调试的代码的 appidcontrol.xmlappid 值一致。这条跟上面两条说的是一个东西,Uniapp 的 appid,上面两条改的也是这个东西。

    在这里插入图片描述

  • 使用 Xcode -> Product -> Archive 打包,然后生成 ipa,并把 ipa 名称命名为:iOS_debug.ipa 这个名称格式是固定不可变的,别写错了。怎么导出 ipa 包在上面的 iOS 本地离线打包 文章内有,不写重复的了。

  • 然后到 uniapp 项目得根目录新建一个 unpackage 文件夹,在里面再建一个 debug 文件夹,

    将这个 基座 ipa 拷贝出来丢到 debug 文件夹内,同时必须 基座 ipa 文件名改为 iOS_debug.ipa,这个名字是固定必须的,不要写错 -_

    在这里插入图片描述

  • 然后勾选上手机或模拟器,选择自定义基座就可以使用了,如果 模拟器 识别不到就用真机吧。

    在这里插入图片描述

  • 细节补充:使用了 本地插件云插件 的工程,不能使用离线自定义基座,包括离线打包,只能走 云打包或云基座 才能生效。

    因为使用了会导致这些 插件 失去效果,这个是个官方 bug,忍不住吐槽一下,这样 离线基座离线打包 不是算半残废,期望官方能修复这个问题。