## Mall4j 商城 IOS 打包文档

文档源自 [uniapp 官方离线打包文档](https://nativesupport.dcloud.net.cn/AppDocs/)，如有出入以官网文档为准

### 准备工作

[苹果开发者平台](https://developer.apple.com/) 账号，需要加入苹果开发计划，创建App，申请证书，描述文件等

注册Dcloud账号，登录后台创建应用并申请离线打包 [Appkey](https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey)



### 开发环境

macOS Monterey 及以上 (可用虚拟机)

Xcode 13 及以上版本

HbulidX

App离线SDK下载  [最新iOS平台SDK下载](https://nativesupport.dcloud.net.cn/AppDocs/download/ios)



### SDK目录说明

```
|-- HBuilder-Hello       给用户打uni-app项目的离线打包工程
|-- Feature-iOS.xls      配置表（依赖的库、资源文件、参数配置等）
|-- SDK                 工程需要的库文件，.h头文件，配置文件，资源文件
```

- 详细说明：[App离线SDK内不同文件的作用](https://nativesupport.dcloud.net.cn/AppDocs/usesdk/iOSReadMe)



### 配置工程

下载离线SDK压缩包，解压；用 Xcode 打开 HBuilder-Hello 项目



#### 配置Appkey

打开 HBuilder-Hello ->  Supporting Files -> HBuilder-Hello-Info，找到 dcloud_appkey，填入appKey

![](../img/app打包/ios/配置appkey.png)



#### 生成本地打包app资源

用 HbulidX 打开项目，选择菜单 发行 -> 原生App-本地打包 -> 生成本地打包App资源

或执行命令 npm run build:app-ios 编译

![](../img/app打包/ios/生成本地打包app资源.png)



#### 导入打包资源到xcode

把生成好的本地打包app资源复制到 xcode 项目目录下的 Pandora -> apps 路径下，替换掉原来的

![](../img/app打包/ios/导入本地打包app资源.png)



#### 修改 control.xml 文件

打开 Xcode 工程Supporting Files -> control.xml文件修改 appid 值，改成和manifest.json里面的id一样

![](../img/app打包/ios/修改control文件appid.png)



#### 修改应用信息

按图示箭头从左往右依次点击 HBuilder-Hello -> TARGETS 下的 HBuilder

在General下修改应用名称、包名、版本名称、版本号

Display Name是app名称

Bundle Identifier为苹果的AppID

Version为应用版本号，在App Store中显示的版本号，推荐与manifest.json中version下的name值一致；

Build为编译版本号，App Store判断升级使用，推荐与manifest.json中version下的code值一致。

![](../img/app打包/ios/配置版本信息.png)



##### **修改app名称**

即使修改了Display Name，打包后的app名称依然是"Hbuilder你好"；需要改一下 InfoPlist.strings 下面的 CFBundleDisplayName 为应用名字，InfoPlist.strings(English)为英文系统应用名，Simplified为中文简体系统应用名

![](../img/app打包/ios/配置应用名称.png)



##### **修改app图标**

按图示箭头从左往右依次点击 HBuilder-Hello -> TARGETS 下的 HBuilder

在General下 找到 App Icons and Launch Images 点击小箭头

![](../img/app打包/ios/配置app图标1.png)

在 HBuilderX 中打开 mainfest.json，在 App图标配置中 使用自动生成图标功能，然后把生成的图标拖动到 xcode 中 Images 对应的每个大小的位置中 即可完成配置

![](../img/app打包/ios/配置app图标2.png)



##### **配置应用签名**

配置 xcode 自动签名: 

打开 xcode 配置，切换到 Account 选项，添加已完成签名申请的苹果开发者账号

![](../img/app打包/ios/xcode配置自动签名.png)



如图示打开 Signing & CapaBilities，勾选 "Automatically manage signing"，选择一下 Team(如果没有的话，创建一个)，填一下Bundle Identifier

![](../img/app打包/ios/签名配置.png)

签名常见错误1

![](../img/app打包/ios/签名错误1.png)

切换到选择卡“Build Settings” 搜索签名 “Signing” ；
然后在列出的代码签名标识中把值设置为 “Apple Development”；

签名常见错误2

![](../img/app打包/ios/签名错误2.png)

切换到选择卡“Build Settings” 搜索签名 “ Provision”，(快捷键command+delete)删除User-Defined下面的PROVISIONING_PROFILE



### 第三方模块配置

项目目前使用到模块/第三方SDK包含 定位、微信支付、支付宝支付、视频播放。
具体配置方法可参考uniapp官网  [模块/三方SDK配置介绍](https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/common)



### 打包上传

点击 Xcode 中部项目名称，设置编译配置，选择 Any iOS Device (arm64, armv7)

![](../img/app打包/ios/打包配置.png)



点击 Product 菜单，Archive 选项

![](../img/app打包/ios/打包上传1.png)



待编译完成后会自动弹出 Archives ，点击 右上角 Distribute App ，准备上传

Archives 弹窗可通过 Window -> Organizer 菜单打开

![](../img/app打包/ios/打包上传2.png)



后续的弹窗一路 next ，最后签名完毕后点击 upload 上传

![](../img/app打包/ios/打包上传4.png)

