1. 建立iOS 主工程; 2. flutter 工程以git 自modle 的方式存在; 3. flutter 工程建议跟项目iOS 主工程放在同一个文件夹下; 4. 执行以上脚本命令,生成ipa;安装ipa; 5.Shell 构建flutter + Navtive 生成IPA; 6. 简述:在工程的根目录下,建立文件夹build_iOS文件,在此文件下建立build_iOS.sh的文件,把以下内容copy进sh文件; 进入build_iOS.sh 文件的目录; ### Shell 构建 Flutter + Native 生成 IPA 的过程解析 #### 概述 本文将详细介绍如何通过 Shell 脚本来构建一个包含 Flutter 和 Native 组件的 iOS 应用,并最终生成一个可安装的 IPA 文件。这种方法非常适合自动化构建流程,提高开发效率。 #### 准备工作 1. **创建构建文件夹**:在项目的根目录下创建一个名为 `build_iOS` 的文件夹。在此文件夹中,新建一个 `build_iOS.sh` 的 Shell 脚本文件。 2. **配置构建选项**:在 `build_iOS` 文件夹中,需要根据不同的构建目标(如开发环境、发布版本或 Adhoc 版本)配置相应的 `.plist` 文件。这些文件用于指定 Xcode 构建时的具体参数,例如签名证书、打包格式等。 #### 构建流程 1. **初始化环境**: - 在 `build_iOS.sh` 文件中,首先定义了一些变量,如工程名称 (`PROJECT_NAME`)、构建模式 (`BUILD_TYPE_DEBUG` 或 `BUILD_TYPE_RELEASE`) 等。 - 使用 `pwd` 命令获取当前目录的绝对路径,并将其存储在 `ProjectDir_Path` 变量中,以便后续步骤中可以轻松访问到工程的根目录。 2. **处理 Flutter 模块**: - 定义了 Flutter 模块的位置 (`flutterSubmodule/xxxx_flutter/app_flutter_module`) 并进入该目录。 - 使用 `flutter create` 命令创建 Flutter 工程。 - 返回到工程的根目录并执行 `pod install` 命令来安装所需的 CocoaPods 依赖。 3. **构建设置**: - 设置 `SCHEME_NAME`,通常与 `PROJECT_NAME` 相同。 - 获取 `WORKSPACE_PATH` 和 `PROJECT_PATH`,这些路径对于后续的构建操作至关重要。 - 使用 `sed` 命令从 `project.pbxproj` 文件中提取版本号 (`VERSION_NUMBER`) 和构建号 (`BUILD_NUMBER`)。 4. **实际构建**: - 返回到 `build_iOS` 目录。 - 指定输出目录 (`PRODUCT_PATH`) 以及不同构建类型的 `.plist` 文件路径。 - 根据选择的构建类型,调用 Xcode 的 `xcodebuild` 命令进行构建。这里可以通过 `-exportOptionsPlist` 参数来指定之前配置好的 `.plist` 文件。 - 最终生成的 `.ipa` 文件会被放置在指定的输出目录中。 #### 关键步骤详解 1. **解锁密钥链**: - 在脚本中有一行 `security unlock-keychain -p xxx`,这里的 `xxx` 需要替换为实际的用户密码。这是为了确保构建过程中能够自动解锁密钥链,从而顺利完成证书的加载和验证。 2. **选择构建模式**: - 脚本支持三种构建模式:`develop`、`Release` 和 `Adhoc`。每种模式都需要对应一个特定的 `.plist` 文件,这些文件中包含了不同的构建参数,如分发渠道、代码签名策略等。 3. **提取版本信息**: - 通过 `sed` 命令从 `project.pbxproj` 文件中抽取版本号和构建号。这一步骤对于确保生成的 `.ipa` 文件具有正确的元数据非常重要。 4. **使用 `.plist` 文件配置构建参数**: - 不同的构建类型需要不同的 `.plist` 文件。例如,`AppStoreExportOptionsPlist.plist` 用于发布到 App Store 的构建,而 `DEVELOPExportOptionsPlist.plist` 适用于开发环境的构建。 5. **执行构建命令**: - 使用 `xcodebuild` 命令来执行具体的构建操作。这里可以通过 `-scheme` 参数指定构建方案,`-configuration` 参数指定构建配置(如 Debug 或 Release),以及 `-exportOptionsPlist` 参数来指定配置文件。 #### 结论 通过 Shell 脚本自动化构建 Flutter + Native 的 iOS 应用并生成 IPA 文件,不仅能够简化开发流程,还能够提高构建效率。这种方法尤其适合于需要频繁进行构建和测试的开发团队。希望本文的内容能够帮助您更好地理解和掌握这一自动化构建技术。




























- 粉丝: 518
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (源码)基于OpenGL框架的CG机器人手臂模拟系统.zip
- 基于MATLAB的模糊自适应PID控制:程序调通,动态性能提升的10页报告 - 仿真
- 微电网两阶段鲁棒优化经济调度方法及其Python代码实现
- (源码)基于 Raspberry Pi 的 FM 广播系统.zip
- MATLAB仿真下基于串电阻策略的双馈风力发电机低电压穿越研究
- 基于深度强化学习(DQNDDPGTD3)的混合动力汽车能量管理策略研究与应用
- (源码)基于Python和PyTorch的图像分类深度学习系统.zip
- 复现兰志勇老师的新型三矢量模型:预测电流控制下的永磁同步电机控制原理 - 三角函数运算 权威版
- 基于MATLAB的信号处理GUI:AM、DSB、SSB及FM调制解调交互系统设计与实现 · MATLAB
- (源码)基于C语言的嵌入式LED显示与串行通信系统.zip
- 小型三相光伏并网发电系统:电导增量法与干扰观察法的控制策略研究
- (源码)基于C语言的Crazyflie无人机控制系统.zip
- 永磁同步电机绕组计算器:磁动势与绕组系数的技术解析及应用 说明
- 基于PLC S7-1200与MCGS组态的小区恒压供水系统仿真及优化
- (源码)基于Python的智能家庭助手系统.zip
- 基于OpenFAST与Simulink联合仿真模型的非线性风电机组独立变桨与统一变桨控制研究


