一、前置配置
-
Uniapp
通过都是通过云打包
的方式打包或生成自定义基座,但都需要排队。 -
所以有些人选择离线打包,既然可以离线打包,那么离线打个基座也是可以的,而且离线自定义基座支持
uniapp
与android studio
两个工具上同时联调或打断点调试。 -
根据 # 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
文件夹里只有一个文件夹(文件夹的名称和里面的manifest
的id
值相同),这一条在离线打包里面弄了,其实就是导入Uniapp
的素材文件到Xcode
工程。 -
确保
control.xml
文件里的appid
的值和apps
目录下的第一个文件夹的名称一致,这一条在离线打包里面弄了。 -
确保
HBuilderX
里要调试的代码的appid
和control.xml
的appid
值一致。这条跟上面两条说的是一个东西,Uniapp 的 appid
,上面两条改的也是这个东西。 -
使用
Xcode -> Product -> Archive
打包,然后生成ipa
,并把ipa
名称命名为:iOS_debug.ipa
这个名称格式是固定不可变的,别写错了。怎么导出ipa
包在上面的iOS 本地离线打包
文章内有,不写重复的了。 -
然后到
uniapp
项目得根目录新建一个unpackage
文件夹,在里面再建一个debug
文件夹,将这个
基座 ipa
拷贝出来丢到debug
文件夹内,同时必须基座 ipa
文件名改为iOS_debug.ipa
,这个名字是固定必须的,不要写错-
与_
。 -
然后勾选上手机或模拟器,选择自定义基座就可以使用了,如果
模拟器
识别不到就用真机吧。 -
细节补充:使用了
本地插件
或云插件
的工程,不能使用离线自定义基座,包括离线打包,只能走云打包或云基座
才能生效。因为使用了会导致这些
插件
失去效果,这个是个官方bug
,忍不住吐槽一下,这样离线基座
或离线打包
不是算半残废,期望官方能修复这个问题。