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

一、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示例路径

  4. 生成签名证书,在终端或命令提示符中,使用以下命令生成签名证书(.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"-"+"按钮,按照提示填写应用程序的相关信息,并上传生成的正式包。

相关推荐
祖国的好青年14 小时前
VS Code 搭建 React Native 开发环境(Windows 实战指南)
android·windows·react native·react.js
黄林晴14 小时前
警惕!AGP 9.2 别只改版本号,R8 规则与构建链路全线收紧
android·gradle
小米渣的逆袭15 小时前
Android ADB 完全使用指南
android·adb
儿歌八万首15 小时前
Jetpack Compose Canvas 进阶:结合 animateFloatAsState 让自定义图形动起来
android·动画·compose
zhangphil16 小时前
Android Page 3 Flow读sql数据库媒体文件,Kotlin
android·kotlin
神探小白牙16 小时前
echarts,3d堆叠图
android·3d·echarts
李白的天不白16 小时前
如何项目发布到github上
android·vue.js
summerkissyou198716 小时前
Android-RTC、NTP 和 System Time(系统时间)
android
小书房16 小时前
Kotlin使用体验及理解1
android·开发语言·kotlin
SameX17 小时前
用 SpriteKit 做了个存钱罐 App,30 枚硬币同时掉帧率直接崩了
ios