Skip to content

integrateIOSThirdPartyModule

集成第三方模块到 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.xmlParserXMLParserConstructorXML 解析器构造函数
deps.xmlSerializerXMLSerializerConstructorXML 序列化器构造函数

环境要求

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

函数签名

typescript
function integrateIOSThirdPartyModule(
  projectPath: string,
  projectName: string,
  bundleId: string,
  config: IOSThirdPartyModuleConfig,
  deps: IntegrateIOSThirdPartyModuleDeps
): Promise<{ success: boolean; error?: string; logs: string[] }>

参数

参数名类型必填说明
projectPathstringiOS 项目路径
projectNamestring项目名称(如 'HBuilder-Hello')
bundleIdstring应用 Bundle Identifier
configIOSThirdPartyModuleConfig第三方模块配置
depsIntegrateIOSThirdPartyModuleDeps依赖函数对象

IOSThirdPartyModuleConfig

属性类型必填说明
libsArray<{ source: string; targetName?: string }>库文件列表
frameworksArray<{ source: string; targetName?: string }>Framework 文件列表
embedFrameworksArray<{ source: string; targetName?: string }>需要嵌入的 Framework 列表
sourcesArray<{ source: string; targetPath?: string }>源文件列表
resourcesArray<{ source: string; targetPath?: string }>资源文件列表
infoPlistRecord<string, any>Info.plist 配置
urlSchemesstring[]URL Scheme 列表
universalLinksstring[]Universal Links 列表

返回值

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

工作原理

  1. 复制库文件 - 将库文件复制到 iOS 项目中
  2. 复制 Framework - 将 Framework 文件复制到项目中
  3. 复制源文件 - 将源文件复制到指定目录
  4. 复制资源文件 - 将资源文件复制到项目中
  5. 修改 Xcode 项目 - 更新 project.pbxproj,添加文件引用
  6. 配置 Info.plist - 添加 URL Scheme、Universal Links 等配置

注意事项

  • 需要在 macOS 环境下运行
  • 库文件和 Framework 路径为可选,如果未提供则跳过相应步骤