我们使用uniapp开发,主要是因为它的跨平台特性,一份代码,就可以打包出android、小程序和ios应用,因此,对于ios端,打包和上线app store理应也应该可以使用非mac电脑,才是真正的跨平台开发。
这里我先说结论,windows电脑是可以完成ios的打包和上线的,包括生成证书。我们这篇文章,将讲述生成证书和上线的全部过程。
无论是生成证书还是上线,都必须使用苹果开发者账号,而平台开发者账号,是在苹果开发者中心创建的。因此,我们需要登录苹果开发者中心,创建一个苹果开发者账号。
苹果开发者中心,使用百度一搜就可以出来了,都是开发最常用的网站,这里我就不多少了。
在苹果开发者中心,使用公司邮箱注册一个账号。注册完后,这个账号还是没有权限创建证书和上架的,还需要申请成为开发者。
使用苹果开发者中心的app:Apple Developer app申请成为苹果开发者,要注意,Apple Developer app这个app需要使用iphone来安装,使用iphone在app store上搜Apple Developer就可以搜到了。可以使用自己或同事的iphone去安装这个app申请,登录Apple Developer app的时候,使用我们新注册的账号,请不要使用iphone手机本身的苹果账号登录,否则账号就归属私人账号所有了。
申请苹果开发者,可以申请个人开发者或者公司开发者。申请成为个人开发者比较简单,输入个人信息即可,不过这样上线到app store后,app的归属会显示个人名称,而不是公司名称。
假如要在Apple Developer app申请成公司类型的开发者,需要提前准备邓白氏码,邓白氏码可以在邓白氏官网申请.邓白氏官网百度一下即可知道。邓白氏码申请的时候,提供中国地区的公司名这些信息即可申请。
打包的设置,ios跟android的主要区别是ios权限方面,因此,这里我主要介绍下ios的权限设置,可视化视图,可以在界面上设置,如下图,需要设置相册、摄像头等使用的目的:

当然,也可以使用代码视图设置:
{
"app-plus": {
"permissions": {
"NSPhotoLibraryUsageDescription": "某某功能用于从相册选择图片",
"NSPhotoLibraryAddUsageDescription": "某某功能用于将生成的图片保存到相册"
}
}
}假如是uniapp旧版的项目,代码如下:
{
"app-plus": {
"distribute": {
"ios": {
"NSPhotoLibraryUsageDescription": "应用需要访问您的相册以选择图片"
}
}
}
}启动页的设置比较麻烦,因为启动页不能直接上传图片,需要提供一个zip包,zip包里面有xmlwe你按,支持所有屏幕比例的启动页xml。这个需要原生的ios启动页xml知识。不过uniapp提供了模板修改,替换模板里面的图片即可。 假如自己看不懂模板的xml,也可以百度下yunedit这个工具,可视化生成启动页zip包。

uniapp云打包的时候,需要ios私钥证书,是一个p12格式的证书文件。
ios证书,可以直接在苹果开发者中心生成,登录苹果开发者中心,找到证书入口,点击进去,看到如下图所示,创建一个证书:

证书类型固定选择IOS Distribution (App Store Connect And Ad hoc),这种证书兼容后面创建的正式类型profile和测试类型profile(Ad hoc类型)。

在上一个流程中,点击下一步,需要我们自己提供一个csr文件,可以生成一个cer证书了。
那么这个csr文件如何提供呢?
跨平台可以百度下yunedit这个工具来生成,有mac电脑可以使用钥匙串工具来生成,使用yunedit这个工具方便点,生成完cer文件后将cer文件从苹果开发者中心下载下来,可以再使用yunedit转换成p12文件,如下图所示:

完成上面的步骤,就生成完p12私钥证书了。生成的过程中还会产生一个证书密码,也是uniapp打包的时候用的。
由于profile文件要绑定appId和绑定测试设备(假如需要测试),因此,这里生成profile文件分为三小步,创建appId、创建测试设备、创建profile文件(描述文件)。
(1)创建appId
找到Identifiers菜单,新建一个appId,假如你之前已经创建过相同的appId,则无需重复创建。

上图是已经创建好的appId列表,appID如上图所示,对应uniapp里云打包填写的appId,一定要一致。
(2)添加ios设备的udid到devices
假如不需要打测试包,可以跳过此步骤
由于对于测试版本的ios程序,必须绑定ios真实设备的udid,ios真实设备才能安装测试包,因此,需要先创建device(测试设备),再创建profile文件。
点击devices菜单,看到下图的界面:

添加device的时候,会见到下图的界面:

Device Name是名称,可以随便填,比如zhangsan
Device Id,也就是UDID,需要使用专业的工具来获取,可以使用yunedit获取udid的工具,使用手机原生浏览器打开,打开后按照页面的教程操作就可以获取udid。

(3) 创建描述文件(profile文件)
打开profiles菜单,点击蓝色加好,就可以开始创建描述文件了

这里你记得创建两个profile文件,一个是app store类型的,用来打正式包,一个是ad hoc类型,用来打测试包的。
创建profile文件的时候,需要选择appId和选择证书。
假如选择的是ad hoc类型,还需要选择测试设备,如下图:

好了,这样profile文件也创建完了。
使用ad hoc类型或者app store类型的profile文件配合我们之前创建的p12文件,打包后的文件都是ipa类型的文件,下包后可以从hbuilderx上将ipa文件下载下来。 假如是使用正式类型profile文件打包的ipa文件,需要上架app store,才能在app store下载安装。
假如是使用ad hoc类型的profile文件打包的ipa文件,可以使用手机助手连接数据线安装到测试人员手机进行测试,不过使用数据线的方式会比较麻烦,最简单的是将ipa文件上传到yunedit的app安装测试功能里,生成扫码安装二维码,扫码安装。
打包完测试完后,就到了最后一步了,就是上架app store。
上架app store,也是在苹果开发者中心来完成,你登录苹果开发者中心后,点击登录后的人物图标,可以看到app store connect的入口,如下图:

进去后,创建一个app,创建app的流程很简单,我就不多说了,创建完后,如下图:

点击创建的APP的名字,进入这个app的上架页面,点进去后就可以填写上架的各项资料了。
如下图:

可以看到上图中,很多资料需要填写,根据我们APP的实际情况填写即可,都很简单,我们一个一个填写即可。
对于上图截屏这里假如你没这么真机设备来截屏,可以使用上面说的yunedit这个在线工具来帮助生成截屏。
然后页面滚动条拉下去,最重要的一项来了,就是选择构建版本,需要上传我们打包好的ipa文件。但是这里,app store的网页端并没有提供上传ipa的界面,需要我们去下载第三方上传工具,而它提供的工具都是需要mac电脑才能按照的,如下图所示:

这里,我们不使用它推荐的工具,因为不能跨平台。这里我们可以使用yunedit来上传。yunedit可以在线上传,不需要下载,因此支持跨平台开发。在yunedit使用上传ipa到app store的功能,即可将开发好的ipa文件,上传到app store。
使用yunedit上传成功过后,上架界面会自动多出一个加号,点击加号就可以勾选构建版本了,如下图:

点击蓝色加号后,看到下图的界面:

选择你上传的某个版本来上架即可。
然后填写完所有资料后,就可以提交app store做人工审核了,审核通过后,就可以在app store见到app啦。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。