一、Android平台打包
(一)证书申请
1. 云证书
由DCloud服务器根据你的appid自动生成证书,生成证书后可登录DCloud开发者中心查看证书详情或下载证书文件。云证书的优势是开发方便,但在发布商业应用时,商业组织往往会分离开发证书和发布证书,发布证书仅少数人掌管。DCloud建议开发阶段使用云证书,开发者打包出apk后,交给掌管发布证书的人员使用发布证书自行重签,再上架应用商店。需要注意的是,DCloud不对开发者证书管理行为不规范引发的问题负责,服务器生成的证书会自动填写证书信息,不支持自定义证书信息,有效期为100年。
2. 自选证书
如果开发者已经有自己的安卓签名证书,可直接使用。如果没有证书,可以使用JDK的keytool工具生成一个,制作Android证书没有费用。具体步骤如下:
-
安装JDK(Java Development Kit),访问Oracle官方网站,并下载适用于你的操作系统的JDK安装程序,执行安装程序,并按照提示进行安装。
-
打开终端或命令提示符,在Windows上,按下Win + R,输入cmd,然后按回车键打开命令提示符;在Mac上,打开"应用程序">"实用工具">"终端"。
-
导航到JDK的bin目录,在终端或命令提示符中,使用以下命令导航到你安装的JDK的bin目录,根据你的JDK版本和安装路径可能有所不同,以下命令仅供参考:
cd C:\Program Files\Java\jdk1.8.0_221\bin // Windows示例路径
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin // Mac示例路径 -
生成签名证书,在终端或命令提示符中,使用以下命令生成签名证书(.keystore文件),根据你的需求和项目要求,可以根据需要修改命令中的参数:
keytool -genkey -v -keystore my-release-key.keystore -alias my-release-key -keyalg RSA -keysize 2048 -validity 10000
命令解释:
-genkey
:生成密钥对和证书。-v
:在终端中显示密钥和证书的详细信息。-keystore my-release-key.keystore
:指定要生成的.keystore文件名。-alias my-release-key
:指定密钥和证书的别名,可以自定义。-keyalg RSA
:指定密钥算法为RSA。-keysize 2048
:指定密钥的位数为2048。-validity 10000
:指定证书的有效期,单位为天。
- 按照提示填写证书信息,生成签名证书的命令会提示你填写一些证书信息,如证书拥有者的姓名、组织单位名称、城市、州/省、国家等,根据实际情况填写这些信息。
- 设置密码,生成签名证书时,需要设置一个密码以保护证书的安全性,请记住这个密码,它将用于以后对应用进行签名和更新。
- 确认生成的签名证书,生成签名证书后,会在当前目录下生成一个名为my-release-key.keystore的文件,请确保将这个文件妥善保存,并备份好。
(二)打包配置
1. 包名
在Android中,包名(Package Name)是应用的唯一标识符,采用反写域名命名规则(如com.xxx.xxx形式),可以包含大写或小写字母、数字和下划线("_"),不过,各个名称部分只能以字母开头。
2. 打包格式
- APK安装包:生成apk格式的安装包,国内应用市场支持使用此格式。
- AAB安装包(HBuilderX4.31+支持):生成aab格式的安装包,Google Play应用市场要求必须使用此格式,勾选此格式固定渠道为"google"。需要注意的是,aab格式不支持通过adb命令安装到手机,可参考本地离线打包支持Android App Bundle (AAB)进行安装测试。
3. 渠道包
APK格式安装包支持配置渠道信息,默认提供以下渠道配置项:
渠道名称 | 渠道标识 |
---|---|
华为 | huawei |
OPPO | oppo |
VIVO | vivo |
小米 | xiaomi |
荣耀 | honor |
应用宝 | yyb |
应用中可通过 uni.getAppBaseInfo
返回的 channel
属性获取应用的渠道信息,勾选"无"表示不使用渠道信息,uni.getAppBaseInfo
返回的 channel
属性值为空字符串。如果默认的渠道信息不够用,想要更多渠道,可在 manifest.json
的 源码视图
配置 "__hbuilderx" -> "channel_list"
,保存后,重新打开"App打包"界面,在"APK渠道包"项中会列出新增加的自定义渠道,勾选后提交云端打包才能生效。
(三)测试包与正式包生成步骤
1. 云打包
- 准备工作 :确保已登录HBuilderX并打开需要打包的项目,确认项目的
manifest.json
文件中的基本信息设置无误,包括应用名称、包名、图标等必要字段。 - 打开云打包界面:在HBuilderX中选择菜单栏上的 "发行" -> "原生App-云打包" 来启动云打包流程。
- 设置打包参数:按照向导逐步填写或选择必要的选项,比如应用基础信息(如版本号、渠道号)、签名配置(如果之前已经准备好Android签名证书,则可以选择已有证书;如果没有可以在此处创建新的签名文件用于后续正式发布时使用),其他高级选项可根据实际需求调整,默认情况下保持不变即可满足大多数场景下的测试目的。
- 提交打包请求:完成上述所有设置后点击底部的 "立即打包" 按钮提交任务给云端处理,此时可能会有短暂等待时间以便加入队列执行构建过程。
- 获取APK文件 :当收到通知表示打包成功后,可以在本地项目目录下的
unpackage/dist/build/android/release/
路径找到生成好的apk文件,此外,系统还会给出具体的下载链接方便快速获取最新构建成果。
2. 本地离线打包
-
环境准备:安装HBuilderX最新版、与HBuilderX版本对应版本的"Android离线SDK - 正式版"、Android Studio以及java1.8环境。
-
证书(keystore)准备:输入生成证书的命令,格式为:
keytool -genkey -alias 证书别名 -keyalg RSA -keysize 2048 -validity 证书的有效期(单位为天) -keystore 证书文件名.keystore
例如:
keytool -genkey -alias test -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
之后查看证书,使用命令:
keytool -list -v -keystore 证书文件名.keystore
例如:
keytool -list -v -keystore test.keystore
显示的信息如下,重点注意证书指纹信息:SHA1,SHA256,之后要用到。
- 注册登录开发者中心(dcloud) :注册登录开发者中心,网址:https://dev.dcloud.net.cn。
- 创建项目:使用HBuilderX创建uniapp项目,项目创建好后可以在"开发者中心-我的应用"中查看到该应用和Appid。
- Android平台信息配置与离线打包key获取:点击应用名称进入管理页面,点击各平台信息,点击新增,平台选择Android App,版本选择正式版,输入包名(自定义即可),和证书指纹信息中的SHA1,SHA256值,然后点击提交,提交后点击创建离线打包key,创建好之后然后点击查看,打码部分就是我们需要的离线打包key,之后需要用到。
- App配置 :配置需要支持的CPU类型,关于该配置的说明见官网:https://ask.dcloud.net.cn/article/36195。
- 生成本地打包App资源 :生成的资源所在路径如下(示例:
_UNI_F60B5A5
就是生成的资源)。 - 使用Android Studio将资源打包成apk :使用"Android Studio"打开"Android离线SDK"中的"HBuilder-Integrate-AS"项目,将
HBuilder-Integrate-AS\\simpleDemo\\src\\main\\assets\\apps_UNI_A
删除,替换为HBuilderX生成的资源,修改simpleDemo/src/main/AndroidManifest.xml
中的包名为dcloud里配置的包名,以及修改android:value
的值为之前生成的"离线打包key",修改simpleDemo/src/main/assets/data/dcloud_control.xml
中的appid为你的appid,修改simpleDemo/build.gradle
中的applicationId
为包名,修改simpleDemo\\src\\main\\res\\values\\strings.xml
的app_name
为你需要的app名称,配置构建使用的jdk版本,进入设置,进入Build/Build Tools/Gradle菜单,将默认使用的jdk改为本地的jdk1.8,之后点击OK,打包,选中APK,填写证书路径,别名,密码等信息,点击Next,选中release,点击Create开始打包,打包成功之后生成的apk文件在simpleDemo/release
路径下。
二、iOS平台打包
(一)证书申请
1. 准备工作
必须要有苹果开发者账号,并且加入了 "iOS Developer Program",Mac OS 10.9以上系统(如果已经申请p12证书则不需要)。
2. 申请苹果App ID
由于重新生成证书时不需要重新申请App ID,一个应用程序自始至终都只需要申请一个App ID即可,如果没有App ID,则可以根据相关步骤进行处理。
3. 生成证书请求文件
需要使用mac苹果电脑,点击苹果电脑右上角的搜索图标,输入"钥匙串访问",即可打开"钥匙串访问"功能,打开菜单 "钥匙串访问"->"证书助理",选择"从证书颁发机构请求证书...",打开创建请求证书页面,在页面中输入用户邮件地址、常用名称,选择存储到磁盘,点击 "继续",文件名称为"CertificateSigningRequest.certSigningRequest",选择保存位置,点击 "存储" 将证书请求文件保存到指定路径下,后面申请开发(Development)证书和发布(Production)证书时需要用到。
4. 申请开发证书和描述文件
在证书管理页面选择 "Certificates" 可查看到已申请的所有证书(TYPE:Development为开发证书,Distribution为发布证书),点击页面的加号来创建一个新的证书,在 "Software" 栏下选中 "iOS App Development" 然后点击 "Continue",接下来需要用到刚刚生成的证书请求文件,点击"Choose File..."选择刚刚保存到本地的 "CertificateSigningRequest.certSigningRequest" 文件,点击 "Continue" 生成证书文件,生成证书后选择 "Download" 将证书下到本地 (ios_development.cer)。需要在苹果电脑中双击保存到本地的 ios_development.cer
文件,会自动打开 "钥匙串访问" 工具说明导入证书成功,可以在证书列表中看到刚刚导入的证书,接下来需要导出 .p12
证书文件,选中导入的证书,右键选择 "导出...",输入文件名、选择路径后点击 "存储",输入密码及确认密码后点击 "好",至此,完成了开发证书的制作(得到了xxx.p12证书文件)。接下来,继续生成开发阶段所需的描述文件,在生成描述文件之前,需要先添加调试设备(iPhone、iPad),然后进行申请描述文件,在证书管理页面选择 "Profiles",可查看到已申请的所有描述文件,点击页面上的加号来添加一个新的描述文件,在 "Development" 栏下选中 "iOS App Development",点击"Continue"按钮,这里要选择之前创建的 "App ID",点击"Continue",接下来选择需要绑定的证书,建议直接勾选 "Select All",点击"Continue",选择授权调试设备,建议直接勾选,点击"Continue",输入描述文件名称,点击"Generate"生成描述文件,点击"Download"下载保存描述文件。
5. 申请发布证书和描述文件
与申请开发证书和描述文件类似,在 "Software" 栏下选中 "iOS Distribution (App Store Connect and Ad Hoc)",后续步骤相同,最终得到发布证书(xxx.p12)和发布描述文件。
(二)打包配置
1. Bundle ID
Bundle ID (Bundle identifier)也叫 App ID 或者应用ID,是每个iOS应用的唯一标识,通常以反转的域名格式命名(如:com.example.appname),只能包含字母、数字、中划线和点号(.),不能包含特殊字符或空格,Bundle ID不区分大小写,推荐使用权小写字母。申请iOS证书、打包ipa和在itunesconnect创建App都要用到Bundle ID,整个App上架流程就是靠这个Bundle ID关联在一起。
2. 支持的设备
必须勾选支持iPhone、支持iPad中的至少一项,勾选"支持iPhone"才能安装到iPhone设备,不勾选则无法安装到iPhone设备;勾选"支持iPad"才能在iPad设备全屏运行,不勾选此项也可以安装到iPad设备,但运行时会有黑边。
3. 证书信息
打包iOS安装必须使用Apple证书,需到Apple开发者网站申请,详情参考Apple证书申请。在打包时需要选择在Apple开发者网站申请的私钥证书、输入访问私钥证书的密码、选择与证书关联的Profile文件。
(三)测试包与正式包生成步骤
1. 云打包
- 更改版本号:便于检查更新。
- 云打包:在HBuilderX内选中文件,点击发行 ==> 云打包,选择iOS ipa包,输入APPID,勾选支持iPad,输入生成证书时设置的密码,选择证书(开发环境的证书用于手机测试,生产环境的证书才能通过App Store审核)和Profile证书,点击打包,点击打包后,会提交云端开始打包,一般两三分钟就打包完成,完成后,会生成一个下载地址,点击链接进行下载。
- 广告取消:如果有默认勾选且不可取消的广告,则需要在uniapp后台进行取消。
2. 使用香蕉云编进行 ipa
文件的构建和屏幕截图生成
可以参考相关文档进行操作,生成ios证书的操作步骤可参考:https://ask.dcloud.net.cn/article/152。
3. 提交App Store审核
生成正式包后,可以将应用程序提交到App Store进行审核。在Apple开发者网站中,登录你的开发者账号,进入"App Store Connect"页面,点击"我的App"-"+"按钮,按照提示填写应用程序的相关信息,并上传生成的正式包。