uni-app 苹果(ios)手动打包与上线AppStore

前言

之前开发H5和Android端时可以直接通过云打包生成APK文件或上架Google Play需要的aab文件,最近需要将项目打包发布到苹果的App Store上,由于云打包生成的是.ipa文件,并不能上传到苹果的开发者后台进行上架App Store审核,需要通过Xcode编译后上传进行审核,于是决定使用本地离线打包,在这里我将记录一下从申请证书到审核通过的过程。

2024-07-26 补充

Mac用户可以通过Transporter直接上传.ipa文件

Transporter可以通过App Store下载,登录后直接拖入上传即可,有小概率卡住

.ipa文件可通过HbuilderX的IOS云打包生成,证书请看“环境及必要信息”的第3条

环境及必要信息

1、Xcode

由于Xcode只能在Mac上下载,所以需要使用Mac电脑进行操作

网上似乎有一些教程或者第三方的软件或网站可以替你打包或提供环境,但是毕竟涉及到代码的上传,有泄露风险

2、苹果开发者账号并且加入了iOS Developer Program

3、证书

如果你之前使用过HbuilderX的IOS云打包,那你一定申请过iOS的证书,如果你还没有证书,那么需要先申请,可以参考uni app官方的教程(https://ask.dcloud.net.cn/article/152)

生成离线打包资源

打开HBuilderX,导入你的项目,然后点击发行 => 原生App-本地打包 => 生成本地打包App资源

图片[1]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

打包完成后在控制台会有一个文件存放的路径,点击打开后会显示一个文件夹,文件夹的名字是__UNI__XXXXXX和APPID一致

图片[2]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

下载离线打包SDK

你需要访问https://nativesupport.dcloud.net.cn/AppDocs/download/ios.html 下载uniapp官方提供的SDK包

下载解压后有一个名称为HBuilder-Hello文件夹,注意这个文件夹里面包含了一个名为HBuilder-Hello.xcodeproj的文件

图片[3]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[4]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

如果怕后面弄错了,建议可以复制一份到其他地方

导入SDK文件

打开XCode,选择File => Open 将刚刚的HBuilder-Hello导入

图片[5]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

替换项目文件

HBuilder-Hello => HBuilder-Hello => Pandora => apps => __UNI__33C5XXX文件夹删除,替换成刚刚HBuilderX打包生成的__UNI__XXX替换进去,XXXAppid,不知道这个文件的往前面翻一翻

图片[6]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

替换离线打包Key

打开dcloud开发者后台 https://dev.dcloud.net.cn/pages/app/list

我的应用中找到对应的应用,点击后找到各平台信息(原本是离线打包Key,现已迁移),点击右上角的新增,新增一条IOS的离线打包Key,其中iOS BundleId填在Apple开发者后台中Identifiers标识符对应的APP的IDENTIFIER(具体看下图3),生成后查看,并将获取到的Key记录下来

图片[7]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[8]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[9]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[10]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[11]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

打开HBuilder-Hello => HBuilder-Hello => Supporting Files => HBuilder-Hello-Info.plist文件,搜索dcloud_appkey这一项,将值改为刚刚记录的值

图片[12]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

修改control文件

appid改为uniapp项目中manifest.json文件中的appidappver改为manifest.json文件中的versionName(应用版本名称)

图片[13]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[14]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

修改APP配置

点击左侧边栏第一个HBuilder-Hello,然后选择TARGETS,选择General,找到Identity

点开uniapp的manifest.json文件,切换到源代码模式

App Category 可以不用填,默认None即可; Display Namemanifest.jsonname字段; Versionmanifest.jsonversionName字段; Buildmanifest.jsonversionCode字段;

最后Bundle Identifier如果无法填写,可以点击右侧的箭头,点击后会打开另一个选项卡Siging,Sigingdebugrelease,填写两个包名,填写完成后将Team改为自己(注册的开发者账号),Provisioning Profile改为自己的打包,如果不知道这个文件是什么,Import的时候选中之前申请打包证书的那几个文件,哪个亮了选哪个,在这我就示范一下debug的填写,release的填写也是一样的。

如果Team无法填写,导入Profile之后会自动填写

图片[15]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[16]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[17]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

打包上传

完成以上步骤后,点击菜单栏中的Product => Archive

打包完成后在弹出的弹窗中选择Distribute App,最后选择App Store Connect,然后Distribute,等待上传即可

图片[18]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[19]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[20]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

填写审核资料

再次打开苹果开发者中心,选择App

图片[21]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

选择你的App

图片[22]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

点击TestFlight查看代码时候提交上来了 这里有一点延迟,在XCode上推送了,但是要等几分钟这里才有显示

图片[23]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

在TestFlight中能看到你提交的代码后,点击分发,然后填写资料,在构建版本中选择我们刚刚提交的代码版本,点储存后提交审核即可,接下来就是耐心等待审核,审核通过后会发邮件到你的邮箱里

图片[24]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[25]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

常见问题

没有其他尺寸手机怎么截图审核?

可以使用XCode自带的Iphone模拟器

打开步骤如下:

图片[26]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

如果不会运行,还有更简单的方法

XCode中正上方,点击设备名后会展开一排设备,选择IOS Simulator下的设备,然后左上方点击一下长的跟播放按钮一样的按钮,运行到指定的设备

图片[27]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

点击这里截图,然后保存到桌面或者其他文件夹,截图出来的图片是没有边框的,就跟真实的手机截图的一样

图片[28]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[29]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客
图片[30]-uni-app 苹果(ios)手动打包与上线AppStore-艾雨博客

结束语

看到这,相信你已经成功发布了一个属于自己的IOS APP,如果过程中你遇到了其他报错,或者文章缺少了某个步骤,欢迎你留言告诉我。

常见问题会在收到留言或我发现某些问题时继续更新

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    暂无评论内容