简体中文
- 付费uts插件(普通授权版)不支持原生工程接入。
- 如果导出的资源文件不包含
uni_modules,或uni_modules中的插件均不包含app-ios目录可以跳过此章节
根据资源文件下的uni_modules下的插件列表,新建原生插件工程
Xcode,点击File->New->Project,选择Framework点击Next;Product Name填写规则为:unimodule+插件名称,其中-分割改为驼峰,比如uni-getbatteryinfo插件对应的原生工程名应为unimoduleUniGetbatteryinfoLanguage选择为Objective-C,点击Next即可完成创建Target -> General -> Minimum Deployments 选择 12.0 Target -> Build Settings -> Mach-O Type 设置为Dynamic Library Target -> Build Settings -> Other Linker Flags 中添加-ObjC, 字母o和c大写
Target -> Build Settings -> Build Libraries for Distribution 设置为YES Target -> Build Settings -> Enable Module Verifier 设置为NO Target -> Build Settings -> Framework Search Paths 中添加SDK的Libs目录(操作方法:双击展开Framework Search Paths将SDK/Libs文件夹拖入即可)
插件工程中新建uts-config.json文件,然后将SDK中SDK/ExtApiSrc/UTSOC.h以及SDK/ExtApiSrc/UTSOC.mm添加到插件工程中
SDK/ExtApiSrc 目录下)、依赖库(SDK/Libs 目录下)添加到插件工程中,并将依赖库均设置为Do Not Embed | uniapp-x源码文件&资源文件 | uniapp-x项目依赖库 | uniapp源码文件&资源文件 | uniapp项目依赖库 |
|---|---|---|---|
| UTSOC.h UTSOC.mm uts-config.json | DCloudUniappRuntime.xcframework DCloudUTSExtAPI.xcframework DCloudUTSFoundation.xcframework | DCloudUTSConfig.h DCloudUTSConfig.m UTSCPP.h UTSCPP.mm config.json | DCUniBase.framework DCloudUTSFoundation.framework |
DCloudUTSExtAPI.xcframework的制作详见集成内置模块
uni_modules目录下的插件资源,按以下列表中的配置方式分别在主工程和插件工程添加依赖资源
| 目录名/文件名 | 用途 | 配置 |
|---|---|---|
| Frameworks | 插件依赖的三方库(framework/xcframework) | 将目录下的依赖库添加到插件工程中 |
| Libs | 插件依赖的三方库(.a) | 将目录下的依赖库添加到插件工程中 |
| src | 插件源代码 | 将目录下的源代码添加到插件工程中 |
| Resources | 插件需要引用的资源文件存放目录 | 将目录下的资源文件添加到主工程中 |
| Info.plist | 需要添加到原生主工程Info.plist中的配置文件 | 将该文件配置添加到主工程的Info.plist中,注意去重 |
| UTS.entitlements | 需要添加到原生主工程 entitlements 文件中的配置文件 | 根据该文件内容,在主工程中添加对应的Capability |
| config.json | 插件依赖的系统库、cocoapods三方库以及一些需要添加到主工程Info.plist文件内的配置信息 | 详见下表 |
| 参数 | 用途 | 配置 |
|---|---|---|
| frameworks | 插件依赖的系统库 | 在主工程中搜索并添加该列表中的系统依赖库 |
| deploymentTarget | 插件最低支持的iOS版本 | 在插件工程中Target -> General -> Minimum Deployments设置(若大于主工程设置的最低iOS版本需要同步修改主工程的最低支持) |
| dependencies-pods | 依赖的pod库 | 将其添加到插件工程的Podfile文件中并执行pod install |
| plists | 需要添加到原生主工程Info.plist中的配置文件 | 将字段配置添加到主工程的Info.plist中 |
| hooksClass | 用于uts插件应用程序生命周期函数监听 | 在插件工程中找到上面创建的uts-config.json文件,将该配置内容添加到hooksClasses节点下 |
| provider | 组件的注册信息 | 在插件工程中找到上面创建的uts-config.json文件,将该配置内容添加到providers节点下 |
| components | 组件的注册信息 | 在插件工程中找到上面创建的uts-config.json文件,将该配置内容添加到components节点下 |
uts-config.json配置示例图

如果HBuilderX导出的资源文件中包含PrivacyInfo.xcprivacy文件,需要将文件内容添加到插件工程的同名文件中,注意去重
选择构建目标(Any iOS Device/Any iOS Simulator Device),在菜单栏中,选择Product -> Build(或使用快捷键Command + B),分别编译出真机以及模拟器的Framework文件。
在菜单栏中,选择Product -> Show Build Floder in Finder 获取编译产物所在路径。
使用xcodebuild命令行创建xcframework
xcodebuild -create-xcframework -framework 真机路径/unimoduleUniGetbatteryinfo.framework -framework 模拟器路径/unimoduleUniGetbatteryinfo.framework -output 导出路径/unimoduleUniGetbatteryinfo.xcframework
导出成功后,将 unimoduleUniGetbatteryinfo.xcframework 添加到主工程,并设置为 Embed && Sign
编译模拟器注意事项
Apple芯片的设备编译模拟器需要在菜单栏中点击Product -> Destination -> Show All Run Destinations,然后选择Rosetta模拟器编译
首先,你需要创建一个Xcode Workspace,它允许你同时打开多个项目(包括你的主工程和UTS插件工程)。
File > New > Workspace。MyProject.xcworkspace。主工程和UTS插件工程添加到WorkspaceFile > Add Files to <YourWorkspaceName>。主工程和UTS插件工程,将它们添加到Workspace中。主工程依赖UTS插件工程General标签页,滚动到Frameworks, Libraries, and Embedded Content部分。+按钮,添加你的UTS插件工程生成的framework文件。Embed & Sign选项被勾选。UTS插件工程工程中设置断点,然后在主工程中触发相关功能来调试UTS插件