diff --git a/docs/plugin/uts-for-ios.md b/docs/plugin/uts-for-ios.md index 90019a139375e567330e663ea4db00ef13044314..e45e4b348551a6e2b33e632c1933656a1750fe06 100644 --- a/docs/plugin/uts-for-ios.md +++ b/docs/plugin/uts-for-ios.md @@ -581,6 +581,7 @@ HBuilderX 目前写iOS uts 插件时部分语法提示会有缺失、参数类 - 缺失可选类型标识; - 参数标签没有标记无法知道是否需要忽略参数标签; - 不支持导入包含有子模块的原生模块; +- 暂不支持.a依赖库的代码提示; 这些问题会在后续版本中优化 @@ -594,3 +595,68 @@ HBuilderX 目前写iOS uts 插件时部分语法提示会有缺失、参数类 ### 7.3 类型兼容问题 - 元组类型目前不支持 + +### 8 .a依赖库相关说明 +#### 8.1 .a库存放的目录结构 + +
+
+└─Libs // .a库存放目录
+ ├─MyStaticLibA //A静态库(该库所有文件放在此文件夹内,OC库)
+ │ ├─libMyStaticLib.a //.a文件,必须
+ │ ├─MyStaticLib.h //A.a库对应的头文件,必须
+ │ ├─MyClassA.h //需要暴露的头文件A,可选
+ │ └─MyClassB.h //需要暴露的头文件B,可选
+ └─TestSwiftLibrary //B静态库(该库所有文件放在此文件夹内,Swift库)
+ ├─libTestSwiftLibrary.a //.a文件,必须
+ └─TestSwiftLibrary.swiftmodule //.swiftmodule文件夹,必须
+
+
+
+注意:
+- 将.a库的所有文件存放在一个文件夹内,多个.a库就创建多个文件夹;
+- 未对某个.a库文件夹下的文件做递归查找,请不要将.a或.h文件嵌套在多层文件夹内,以免发生错误;
+
+#### 8.2 .a库的使用说明
+
+- OC语言创建的.a库在使用时无需import,可直接使用;
+- Swift语言创建的.a库在使用前需要在uts文件中import;
+- HBuilder X目前暂不支持.a库相关代码的语法提示;
+
+#### 8.3 .a库的使用示例
+
+- OC语言创建的.a库使用示例:
+
+```ts
+// uts
+const aResult = ToolA.toolAMethod();
+const bResult = ToolB.toolBMethod();
+const libResult = TestLib.testLib();
+
+const res = {
+ aResult: aResult,
+ bResult: bResult,
+ libResult: libResult
+};
+options.success?.(res);
+```
+
+- Swift语言创建的.a库使用示例:
+
+```ts
+// uts
+import { Tool, Manager, TestLibraryExa } from 'TestLibraryExa';
+
+Manager.testManager();
+Tool.testTool()
+let lib = TestLibraryExa();
+lib.test()
+console.log(lib.version);
+```
+
+### 9 有关Swift语言创建的Framework和.a的Swift版本兼容性问题
+
+- 由于高版本XCode编译的Swift语言Framework动态库、静态库、.a库在低版本XCode上无法编译通过,因此存在Swift版本兼容性问题;
+- 目前打包机使用的XCode版本号是13.2.1,对应的Swift版本是5.5.2;
+- 请在编译Swift相关Framework和.a库时选择和打包机相同或者更低版本的XCode;
+- 选择比打包机更低版本XCode编译Swift库时请在Target->buildSettings设置Buid Libraries for Distribution 为Yes。
\ No newline at end of file
diff --git a/docs/plugin/uts-plugin.md b/docs/plugin/uts-plugin.md
index 9162cba9d944d42dda186cdf4f26568253f8589f..9e810ae677c5d87bd21a5527eb94428893d20b61 100644
--- a/docs/plugin/uts-plugin.md
+++ b/docs/plugin/uts-plugin.md
@@ -129,6 +129,7 @@ package.json 为 uni_modules 插件配置清单文件,负责描述插件的基
│ │ └─index.uts //Android原生插件能力实现
│ ├─app-ios //iOS平台目录
│ │ ├─Frameworks //iOS原生依赖的第三方 framework 依赖库存放目录,可选
+│ │ ├─Libs //iOS原生依赖的第三方 .a 依赖库存放目录,可选
│ │ ├─Resources //iOS原生所依赖的资源文件存放目录,可选
│ │ ├─info.plist //iOS原生所需要添加到主 info.plist 文件中的配置文件,可选
│ │ ├─UTS.entitlements //iOS原生所需要添加到主工程 .entitlements 文件中的配置文件,可选
@@ -288,6 +289,7 @@ app-ios 文件夹下存在iOS平台原生配置,包括以下目录或文件
|目录名/文件名 |用途 |
|:--- |:--- |
|Frameworks |iOS平台插件需要引用的三方 framework 依赖库存放目录 |
+|Libs |iOS平台插件需要引用的三方 .a 依赖库存放目录 |
|Resources |iOS平台插件需要引用的资源文件存放目录 |
|Info.plist |iOS平台插件需要添加到原生工程Info.plist中的配置文件 |
|UTS.entitlements |iOS平台插件需要添加到原生工程 entitlements 文件中的配置文件 |
@@ -295,12 +297,22 @@ app-ios 文件夹下存在iOS平台原生配置,包括以下目录或文件
|index.uts |主入口,index.d.ts声明的能力在iOS平台下的实现 |
##### Frameworks
-iOS平台插件依赖的三方库存放目录,支持以下类型文件:
+iOS平台插件依赖的三方framework存放目录,支持以下类型文件:
- framework
- xcframework
-注意:目前只支持静态库
+注意:目前支持静态库和动态库
+
+##### Libs
+> HBuilder X 3.7.2+ 版本支持
+
+iOS平台插件依赖的三方.a库存放目录,支持以下类型的.a库:
+
+- 使用OC语言创建的.a库
+- 使用Swift语言创建的.a库
+
+备注:有关OC及Swift创建的.a库的区别、.a库的使用方法和注意事项[详见](https://uniapp.dcloud.net.cn/plugin/uts-for-ios)
##### Resources
iOS平台原生资源目录,建议只保存uts插件内置的资源文件。云端打包时会将此目录下的所有文件添加到应用 main bundle 中。