# uni-app x 原生SDK iOS版

# 准备环境

  • HBuilder X (4.26及以上版本)
  • Xcode 15.2及以上版本

# 接入流程

  1. HBuilder X 中导出资源文件,根据资源内容,配置原生主工程环境,添加基础模块需要的依赖库以及资源文件
  2. 根据资源文件中的manifest.json文件中包含的模块,制作DCloudUTSExtAPI.xcframework,并将其添加到原生主工程中,详见集成内置模块
  3. 根据资源文件中的manifest.json文件中包含的模块,向原生主工程添加工程配置以及内置模块需要的资源文件等,详见集成内置模块
  4. 根据资源文件中的uni_modules文件夹中包含的UTS插件,制作对应的原生xcframework,并将其添加到原生主工程(付费购买的uts插件不支持原生工程接入),详见制作UTS插件
  5. 在原生工程中,通过API启动uni原生SDK,详见API文档

# 导出资源文件

  1. 在原生工程中新建文件目录uni-app-x/apps

  2. 打开 HBuilder X -> 发行 -> 原生App-本地打包 -> 生成本地打包App资源 勾选iOS点击生成

  3. 导出成功之后会在项目的unpackage/resources目录下生成资源文件

  4. app-ios 目录下与appid对应的目录拷贝到原生工程的 uni-app-x/apps 目录下

# 原生工程配置

Target -> General -> Minimum Deployments 选择 12.0

Target -> Build Settings -> Other Linker Flags 中添加-ObjC-ld_classic-weak_framework SwiftUI

  1. 若HBuilderX项目根目录下包含Info.plist文件,需要将该文件内容拷贝到原生主工程Target -> Info
  2. Target -> Info 下,添加如下配置
<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
	<key>UIFileSharingEnabled</key>
	<true/>
	<key>uniapp-x</key>
	<dict>
		<key>appid</key>
		<string>应用的appid</string>
		<key>ipatype</key>
		<integer>1</integer>
		<key>singleThread</key>
		<true/>
		<key>uniRuntimeVersion</key>
		<string>SDK版本号</string>
		<key>unionid</key>
		<string>广告联盟id,如未开通uniad可不填</string>
		<key>channel</key>
		<string>appstore</string>
		<key>initPrivacyAuthorization</key>
		<true/>
	</dict>
</dict>

# 集成基础模块

将以下依赖库(SDK/Libs 目录下)添加到工程中

依赖库 系统依赖库
DCloudDebugServe.xcframework (Do Not Embed)Debug环境下集成)
DCloudUTSFoundation.xcframework (Embed & Sign)
DCloudUniappRuntime.xcframework (Embed & Sign)
SDWebImage.xcframework (Embed & Sign)
DCloudUTSExtAPI.xcframework (Embed & Sign)
JavaScriptCore.framework
c++

Target -> Build Phases -> Link Binary With Libraries 下添加依赖库 Target -> General -> Frameworks,Libraries,and Embedded Content 下设置Embed & Sign DCloudUTSExtAPI.xcframework如何获取详见集成内置模块

# 集成内置模块

根据集成内置模块制作DCloudUTSExtAPI以及向主工程添加相关配置

# 集成UTS插件

根据集成UTS插件制作插件库以及向主工程添加相关配置

# 启动与通信

根据API文档在主工程编写代码完成接入