Skip to content

integrateNativePluginIOS

集成 UniApp 原生插件到 iOS 项目,自动配置相关文件和依赖。

前置依赖

依赖参数

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.readFileSyncFileSystem['readFileSync']读取文件内容
deps.writeFileSyncFileSystem['writeFileSync']写入文件内容
deps.copyFileSyncFileSystem['copyFileSync']复制文件
deps.statSyncFileSystem['statSync']获取文件状态
deps.mkdirSyncFileSystem['mkdirSync']创建目录
deps.readdirSyncFileSystem['readdirSync']读取目录内容
deps.cpFileSystem['promises']['cp']异步复制目录
deps.joinPath['join']路径拼接
deps.dirnamePath['dirname']获取目录名
deps.basenamePath['basename']获取文件名
deps.execChildProcess['exec']执行命令
deps.parseJSON5Parser['parse']JSON 解析器
deps.xmlParserXMLParserConstructorXML 解析器构造函数
deps.xmlSerializerXMLSerializerConstructorXML 序列化器构造函数

环境要求

  • Node.js 环境: 需要文件系统、路径、子进程等 Node.js API
  • @xmldom/xmldom: XML DOM 解析库
  • json5: JSON5 解析库
bash
npm install @xmldom/xmldom json5

函数签名

typescript
function integrateNativePluginIOS(
  projectPath: string,
  projectName: string,
  bundleId: string,
  pluginPath: string,
  parameters?: Record<string, any>,
  deps: IntegrateNativePluginIOSDeps
): Promise<{ success: boolean; error?: string; logs: string[] }>

参数

参数名类型必填说明
projectPathstringiOS 项目路径
projectNamestring项目名称(如 'HBuilder-Hello')
bundleIdstring应用 Bundle Identifier
pluginPathstring插件路径(可以是目录或 zip 文件)
parametersRecord<string, any>插件参数配置
depsIntegrateNativePluginIOSDeps依赖函数对象

返回值

类型说明
Promise<{ success: boolean; error?: string; logs: string[] }>集成结果,包含成功状态、错误信息和日志

工作原理

  1. 解压插件 - 如果插件是 zip 文件,则解压到临时目录
  2. 读取插件配置 - 解析插件的 package.jsonios 配置
  3. 复制插件文件 - 将插件文件复制到 iOS 项目中
  4. 修改 Xcode 项目 - 更新 project.pbxproj,添加插件文件引用
  5. 配置 Info.plist - 添加插件所需的权限和配置
  6. 集成依赖库 - 如果插件有依赖库,则添加到项目中

注意事项

  • 插件路径可以是目录或 zip 文件
  • 插件必须符合 UniApp 原生插件规范
  • 需要在 macOS 环境下运行