uniapp 离线打包app

离线打包app步骤

其中有一些坑要注意,以及对于不熟原生工程的人可以看看。

 

几个特点:

1、相比云打包,不需要在苹果开发者后台手动生成描述文件。

2、也不需要下载证书到本地安装,再导出p12文件。但是生成的证书开发者平台里不能删除。

 

准备工作:

苹果开发者后台:

1、手动生成certificate。在Software里选择“iOS Distribution (App Store and Ad Hoc)”或“iOS App Development”。实际操作中,另外几个我也点击了生成,怕出错就没有删除。

 

2、手动生成identifier。每一个app都需要生成一个,选择“App IDs”。bundle Id填写app的唯一id。命名规则可以按反向域名,例如 自己的域名是 meta.com,那么就可以写com.meta.应用的名称。

这个一般情况下勾选,其他的看需求。

 

 

uniapp准备工作:

1、申请需要打包的app的appkey,官方有文档就不再说明(https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey)。

2、下载最新的ios离线打包sdk,其实就是一个hbuilder hello的工程项目。注意的是按照官方说法,sdk的版本号必须和hbuilder的版本号一致。比如hbuilder用正式版,sdk用预览版就不行。

3、hbuilder中选择“原生app本地打包”-》“生成本地app打包资源”。生成一个以“uni-app应用标识”的文件夹,例如__UNI__E27A345。

 

打包方法:

官方文档:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios

1、用xcode打开“iOSSDK@3.2.16.80725_20211122/HBuilder-Hello/HBuilder-Hello.xcodeproj”。

2、把hbuilder打包的离线app打包资源文件夹拷贝到“iOSSDK@3.2.16.80725_20211122/HBuilder-Hello/HBuilder-Hello/Pandora/apps”。

3、修改info.plist里的dcloud_appkey为之前申请的appkey。

 

 4、修改control.xml。注意每次都要检查该文件,因为如果换app打包的时候就需要修改为需要打包的appid和版本号。具体看https://nativesupport.dcloud.net.cn/AppDocs/importfeproject/ios。

 

 

5、配置要打包的app的基本资料。

注意:如果bundle identifier不可改,则参考第11步

display name=name manifest.json里的应用名称

bundle identifier=之前苹果开发者后台申请的 “bundle Id”。

version=versionName  manifest.json里的应用版本名称

build=code manifest.json里的应用版本号

 

 

 

 

 

6、配置app的图标。可以先在hbuilder里更换app图标(上传一张1024*1024的图片,其他尺寸会自动生成,然后此处直接选取之前生成好的图片。

 

 

7、配置app启动界面。此处直接使用了uniapp官方提供的方案,但是需要修改启动界面显示的图标。

注意:由于不熟悉文件修改方式,我直接替换了项目里的 dclogo@2x.png和dclogo@3x.png。此时本地测试时,启动界面会先显示下官方的h图标,然后迅速切换到我们换的图标,不过安装到手机后没有这个问题。

 

 

 

 

8、模块配置部分见官方文档。

9、(可选)如果后续打包时报错,则需要把这里全部改成 apple development。可查看https://www.cnblogs.com/waitingbar/p/13902627.html

 

 

 10、配置sign(release),由于我打包时跳过了debug所以,debug的配置就不介绍了,其实是一样的。

勾选 automatically manage signing。首次选择时会让登录apple id。这也就是离线打包时不需要下载证书的原因。

勾选后,team里可以直接选苹果开发者后台里的组织,我感觉此时也会自动匹配certificate。

bundle identifier=bundle id,别填写错了类似这个 com.meta.facebook。

注意:此时如果出现如下的报错信息,则需要执行第九步。

 

 

 

 

 

11、(可选)打包时如果报错可以执行。错误信息类似:The provisioning profile specified in your build settings ("test") has an AppID of "com.meta.facebook" which does not match your bundle identifier "com.meta.facebook"。

参考:https://blog.csdn.net/l2i2j2/article/details/51661443

修改bundle identifier 只在info.plist中修改并没有完,还需要把Build Settings中Package分栏下的Product Bundle Identifier改成新的“com.meta.facebook”

 

12、(可选)如果打包时报错可以执行。错误信息类似如下:

可参考:https://www.jianshu.com/p/36a5ba85c1e5

意思就是app没有使用后台任务,但是勾选了如下服务。

 

解决方式如下:

 

 

13、(可选)如果Archive按钮一直为灰色不可点击可执行。

可参考:https://blog.csdn.net/weixin_34309435/article/details/85757979

解决办法:目前的运行配置是使用模拟器,改成“iOS Device”即可。

14、点击product/archive。然后等待执行,后续可以一直默认下一步。此时不要预先到苹果开发者后台创建app基本信息,当前操作会自动创建,然后可以等上传成功后再去调整。

15、发布到testflight内部测试时,不需要提交审核,上传成功后5分钟后即可直接在内侧组用户里下载测试。

 

posted @ 2021-12-21 17:36  bournexl  阅读(1070)  评论(0编辑  收藏  举报