Flutter Jenkins自动化打包-Android篇

# apk目录
WORKSPACE_PATH=${WORKSPACE}/build/app/outputs/flutter-apk


# 清空存放apk的文件夹(首次编译没有这个路径的文件夹,因此首次编译需要注释掉这里)
cd ${WORKSPACE_PATH}
rm -rf *

#切换到jdk8
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

cd ${WORKSPACE}/
#flutter pub get

# 安卓down下来的插件有个错误,会导致运行失败,因此需要替换文件内容
# 被替换文件

#A=/Users/***/Desktop/flutter/.pub-cache/hosted/pub.flutter-io.cn/contact_picker-0.0.2/android/src/main/java/net/goderbauer/flutter/contactpicker/ContactPickerPlugin.java

# 替换文件
#B=/Users/****/Desktop/WitParkingDEV/ContactPickerPlugin.java

#cat $B > $A

echo "==========已替换插件文件=========="


# 编译apk
flutter build apk --release --flavor ${flavor}
#flutter build apk --release --flavor ziji_qudao

echo "==========jenkins执行打包脚本成功,正在移动apk文件到桌面.....=========="

#curl -X POST -H "Content-Type: application/json" \
#	-d '{"msg_type":"text","content":{"text":"jenkins执行打包脚本成功,正在移动apk文件到桌面..."}}' \
#  https://open.feishu.cn/open-apis/bot/v2/hook/708e95b6-e855-4325-a4e2-ea10a93f5436

#
### 配置 Jenkins 实现 Flutter 项目自动打包 #### 安装 Jenkins 和 Java 为了使 Jenkins 正常运行,在 Mac 上需先安装 Jenkins 及其依赖项 Java。可以通过 Homebrew 来简化这一过程[^3]。 ```bash brew install jenkins-lts ``` 安装完成后,访问 `http://localhost:8080` 启动 Jenkins 并按照屏幕上的指示完成初始设置,包括获取并输入初始化密码、安装推荐插件以及创建管理员账户等操作[^4]。 #### 设置全局工具配置 进入 Jenkins 的系统管理界面,找到“Global Tool Configuration”,在这里添加必要的构建工具: - **JDK**: 增加 JDK 版本以便后续用于编译 Java 类库。 - **Android SDK**: 如果涉及 Android 应用,则需要指定 Android SDK 的位置。 - **Gradle**: 对于 Android 构建来说必不可少;对于 iOS 则不是必需但建议也进行配置以支持多平台开发需求。 - **Flutter SDK**: 明确指出本地已有的 Flutter SDK 路径或让 Jenkins 自动下载最新稳定版。 #### 创建新任务 (Job) 通过点击左侧菜单中的 "New Item" 开始新建一个自由风格软件项目(Freestyle project),命名此作业为 “Build_Flutter_App”。 在源码管理部分选择 Git,并提供仓库 URL 和分支名来拉取代码。接着定义构建触发器(例如定时调度或者监听远程钩子事件),这取决于具体的持续集成策略[^1]。 #### 执行 Shell Script 进行构建 针对不同操作系统下的应用类型编写相应的 shell script: ##### Android Build Command ```sh flutter clean && flutter pub get && cd android && ./gradlew assembleRelease ``` 这条命令序列会清理旧缓存数据、同步依赖关系表、切换至安卓目录下并通过 Gradle 组件执行发布模式的 APK 文件组装工作。 ##### iOS Build Command ```sh flutter clean && flutter pub get && cd ios && xcodebuild archive -scheme YourAppSchemeName -archivePath build/archive/YourAppName.xcarchive ``` 这里假设已经正确设置了 XCode 工程方案(Scheme),并且拥有有效的开发者账号与签名证书信息。 #### 添加凭证管理和安全措施 确保所有敏感资料如私钥、API Token 或者 SSH 密钥都存储在 Jenkins 凭证管理系统内而不是硬编码进脚本里。特别是当处理 iOS App Store 提交时所使用的 p12 文件和移动设备推送通知服务所需的 APNs 认证文件等重要资产更应该妥善保管。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值