简体中文
- 付费uts插件不支持原生工程接入。
- 如果导出的资源文件不包含
uni_modules
,或uni_modules
中的插件均不包含app-ios
目录可以跳过此章节
根据资源文件下的uni_modules
下的插件列表,新建原生插件工程
Xcode
,点击File->New->Project
,选择Framework
点击Next
;Product Name
填写规则为:unimodule
+插件名称
,其中-
分割改为驼峰,比如uni-getbatteryinfo
插件对应的原生工程名应为unimoduleUniGetbatteryinfo
Language
选择为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 -> 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 uts-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模拟器
编译