Skip to content

buildIOSApp

UniApp iOS 离线打包纯函数,整合项目构建、配置修改和模块集成等功能。

前置依赖

依赖参数

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.readFileSyncFileSystem['readFileSync']读取文件内容
deps.writeFileSyncFileSystem['writeFileSync']写入文件内容
deps.copyFileSyncFileSystem['copyFileSync']复制文件
deps.mkdirSyncFileSystem['mkdirSync']创建目录
deps.readdirSyncFileSystem['readdirSync']读取目录内容
deps.statSyncFileSystem['statSync']获取文件状态
deps.cpFileSystem['promises']['cp']异步复制目录
deps.joinPath['join']路径拼接
deps.dirnamePath['dirname']获取目录名
deps.basenamePath['basename']获取文件名
deps.execChildProcess['exec']执行子进程命令
deps.platformstring进程平台信息
deps.parseJSON5Parser['parse']JSON5 解析函数
deps.xmlParserXMLParserConstructorXML 解析器构造函数
deps.xmlSerializerXMLSerializerConstructorXML 序列化器构造函数
deps.xpathXPathXPath 查询库
deps.setTimeouttypeof setTimeout超时函数
deps.sharpSharp图像处理库(可选,用于启动屏配置)

环境要求

  • Node.js 环境: 需要文件系统、路径、子进程等 Node.js API
  • @xmldom/xmldom: XML DOM 解析库
  • xpath: XPath 查询库
  • json5: JSON5 解析库
  • sharp: 图像处理库(可选)
bash
npm install @xmldom/xmldom xpath json5 sharp

函数签名

typescript
function buildIOSApp(
  options: UniAppIOSBuildOptions,
  deps: BuildIOSAppDeps
): Promise<UniAppIOSBuildResult>

参数

参数名类型必填说明
optionsUniAppIOSBuildOptionsiOS 打包选项
depsBuildIOSAppDeps依赖函数对象

UniAppIOSBuildOptions

属性类型必填说明
uniappProjectPathstringUniApp 项目路径
projectPathstringiOS 项目路径
bundleIdstringiOS Bundle Identifier
appkeystringUniApp 应用密钥
configuration'Debug' | 'Release'构建配置,默认为 'Release'
schemestringXcode Scheme 名称
cleanboolean是否清理构建,默认为 false
outputPathstring输出路径
signingIOSSigningOptions签名配置
nativePluginsUniAppNativePluginIOSOptions[]原生插件配置列表

返回值

类型说明
Promise<UniAppIOSBuildResult>打包结果,包含成功状态、输出路径、错误信息和日志

工作原理

  1. 解析 manifest.json - 读取 UniApp 项目配置
  2. 同步版本配置 - 更新 project.pbxproj 中的版本号
  3. 修改 Info.plist - 配置 Bundle ID、AppKey 等信息
  4. 编译 UniApp 项目 - 构建 UniApp 资源
  5. 复制资源文件 - 将 UniApp 资源复制到 iOS 项目
  6. 集成原生插件 - 如果配置了原生插件,则集成到项目中
  7. 编译 iOS 项目 - 使用 xcodebuild 编译并导出 IPA

注意事项

  • 需要在 macOS 环境下运行
  • 需要配置 Xcode 签名信息
  • 建议使用 buildIOSPlugin 进行插件开发调试