UniApp APP打包方法(Android/iOS双平台)

发布于:2025-06-12 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、Android平台打包

(一)证书申请

1. 云证书

由DCloud服务器根据你的appid自动生成证书,生成证书后可登录DCloud开发者中心查看证书详情或下载证书文件。云证书的优势是开发方便,但在发布商业应用时,商业组织往往会分离开发证书和发布证书,发布证书仅少数人掌管。DCloud建议开发阶段使用云证书,开发者打包出apk后,交给掌管发布证书的人员使用发布证书自行重签,再上架应用商店。需要注意的是,DCloud不对开发者证书管理行为不规范引发的问题负责,服务器生成的证书会自动填写证书信息,不支持自定义证书信息,有效期为100年。

2. 自选证书

如果开发者已经有自己的安卓签名证书,可直接使用。如果没有证书,可以使用JDK的keytool工具生成一个,制作Android证书没有费用。具体步骤如下:

  1. 安装JDK(Java Development Kit),访问Oracle官方网站,并下载适用于你的操作系统的JDK安装程序,执行安装程序,并按照提示进行安装。
  2. 打开终端或命令提示符,在Windows上,按下Win + R,输入cmd,然后按回车键打开命令提示符;在Mac上,打开“应用程序”>“实用工具”>“终端”。
  3. 导航到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示例路径
  1. 生成签名证书,在终端或命令提示符中,使用以下命令生成签名证书(.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:指定证书的有效期,单位为天。
  1. 按照提示填写证书信息,生成签名证书的命令会提示你填写一些证书信息,如证书拥有者的姓名、组织单位名称、城市、州/省、国家等,根据实际情况填写这些信息。
  2. 设置密码,生成签名证书时,需要设置一个密码以保护证书的安全性,请记住这个密码,它将用于以后对应用进行签名和更新。
  3. 确认生成的签名证书,生成签名证书后,会在当前目录下生成一个名为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.xmlapp_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”-“+”按钮,按照提示填写应用程序的相关信息,并上传生成的正式包。


网站公告

今日签到

点亮在社区的每一天
去签到