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 中。