ios.md 3.7 KB
Newer Older
1 2 3
# uni-app x 原生SDK iOS版

## 准备环境
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
4
* HBuilder X (4.26及以上版本)
5 6 7
* Xcode 15.2及以上版本

## 接入流程
8 9 10 11 12
1.`HBuilder X` 中导出资源文件,根据资源内容,配置`原生主工程`环境,添加基础模块需要的依赖库以及资源文件
2. 根据资源文件中的`manifest.json`文件中包含的模块,制作`DCloudUTSExtAPI.xcframework`,并将其添加到`原生主工程`中,详见[集成内置模块](../modules/ios/modules.md)
3. 根据资源文件中的`manifest.json`文件中包含的模块,向`原生主工程`添加工程配置以及内置模块需要的资源文件等,详见[集成内置模块](../modules/ios/modules.md)
4. 根据资源文件中的`uni_modules`文件夹中包含的UTS插件,制作对应的原生xcframework,并将其添加到`原生主工程`(付费购买的uts插件不支持原生工程接入),详见[制作UTS插件](iosuts.md)
5. 在原生工程中,通过API启动uni原生SDK,详见[API文档](iosapi.md)
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
13 14

## 导出资源文件
W
wanganxp 已提交
15
1. 在原生工程中新建文件目录`uni-app-x/apps`   
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
16

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
17 18 19 20 21 22
    ![](https://web-ext-storage.dcloud.net.cn/native/doc/iOS/create_resources_document.png)

2. 打开 `HBuilder X -> 发行 -> 原生App-本地打包 -> 生成本地打包App资源` 勾选iOS点击生成  
    ![](https://web-ext-storage.dcloud.net.cn/native/doc/iOS/export.png)


DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
23 24
3. 导出成功之后会在项目的`unpackage/resources`目录下生成资源文件   

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
25 26
    ![](https://web-ext-storage.dcloud.net.cn/native/doc/iOS/resources.png)

W
wanganxp 已提交
27
4.`app-ios` 目录下与`appid`对应的目录拷贝到原生工程的 `uni-app-x/apps` 目录下    
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
28

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
29 30
    ![](https://web-ext-storage.dcloud.net.cn/native/doc/iOS/copy_resources.png)

31 32


W
wanganxp 已提交
33 34
## 原生工程配置

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
35 36
`Target -> General -> Minimum Deployments` 选择 `12.0`   

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

39 40
1. 若HBuilderX项目`根目录`下包含`Info.plist`文件,需要将该文件内容拷贝到`原生主工程``Target -> Info`
2.`Target -> Info` 下,添加如下配置
W
wanganxp 已提交
41
```xml
42 43 44 45 46 47
<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
48 49
	<key>UIFileSharingEnabled</key>
	<true/>
50 51 52
	<key>uniapp-x</key>
	<dict>
		<key>appid</key>
53
		<string>应用的appid</string>
54 55 56 57 58
		<key>ipatype</key>
		<integer>1</integer>
		<key>singleThread</key>
		<true/>
		<key>uniRuntimeVersion</key>
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
59
		<string>SDK版本号</string>
60 61
		<key>unionid</key>
		<string>广告联盟id,如未开通uniad可不填</string>
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
62 63 64 65
		<key>channel</key>
		<string>appstore</string>
		<key>initPrivacyAuthorization</key>
		<true/>
66 67 68
	</dict>
</dict>
```
69
![](https://web-ext-storage.dcloud.net.cn/native/doc/iOS/uniappx_app_info.png)
70 71 72 73 74 75 76 77



## 集成基础模块
将以下依赖库(`SDK/Libs 目录下`)添加到工程中

| 依赖库 | 系统依赖库 |
| ---   | ---|
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
78
| DCloudDebugServe.xcframework `(Do Not Embed)Debug环境下集成)` <br> DCloudUTSFoundation.xcframework `(Embed & Sign)` <br> DCloudUniappRuntime.xcframework `(Embed & Sign)` <br> SDWebImage.xcframework `(Embed & Sign)` <br> DCloudUTSExtAPI.xcframework `(Embed & Sign)`   |   JavaScriptCore.framework <br> c++ |
79 80 81 82 83 84 85 86 87 88 89

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

## 集成内置模块
根据[集成内置模块](../modules/ios/modules.md)制作`DCloudUTSExtAPI`以及向主工程添加相关配置

## 集成UTS插件
根据[集成UTS插件](iosuts.md)制作插件库以及向主工程添加相关配置

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
90 91
## 启动与通信
根据[API文档](iosapi.md)在主工程编写代码完成接入