Flutter Jenkins自动化打包-iOS篇



# keychain-这里可能你进去看到只有login.keychain-db,复制一份然后去掉-db即可
security unlock-keychain -p 111111 ${HOME}/library/keychains/login.keychain

# 工程名-在xcode中查看PROJECT
APP_NAME="Runner"

# target-在xcode中查看TARGETS
TARGET_NAME="Runner"

# 模式
CONFIGURATION="Release"

# 路径 这个路径要自己看/Users/你的电脑用户名/.jenkins/workspace/下的,你每建一个项目,构建后都会在这下面创建对应的文件夹存放git clone下来的项目
WORKSPACE_PATH=${WORKSPACE}/ios/${APP_NAME}.xcworkspace
# 这个是导出ipa用的文件,用xcode导出一个对应模式的ipa就能获取到,把那个文件的路径放这里
EXPORT_OPTIONS=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}/ExportOptions.plist
ArchivePath=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}
EXPORTIPA=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}


# 清空存放ipa的文件夹
#cd ${EXPORTIPA}
#rm -rf *

# flutter pub get
cd ${WORKSPACE}/
#flutter pub get

# build app,里面的primary是前面的target
flutter build ios --release 

curl -X POST -H "Content-Type: application/json" \
	-d '{"msg_type":"text","content":{"text":"jenkins脚本正在打包ios"}}' \
  https://open.feishu.cn/open-apis/bot/v2/hook/95d20add-3cc9-4bad-97eb-2b817d34281a

# 进入原生项目 archive和export
cd ${WORKSPACE}/ios/

#pod install
date=`date '+%Y%m%d_%H.%M.%S'`

# 导出achive,里面的primary是前面的target
xcodebuild archive -workspace ${WORKSPACE_PATH} -scheme "Runner" -configuration ${CONFIGURATION} -sdk iphoneos -archivePath ${ArchivePath}/runner_${date}.xcarchive

# 导出ipa
xcodebuild -exportArchive -archivePath ${ArchivePath}/runner_${date}.xcarchive -exportPath ${EXPORTIPA}/runner_${date} -exportOptionsPlist ${EXPORT_OPTIONS}

new=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}/runner_${date}/WikiFX.ipa
echo -e "\033[32m =================ipa在/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}/runner_${date}/WikiFX.ipa ================= \033[0m"


 
echo "==========当前分支:${branchName}=========="
#飞书机器人webhook 地址
api=https://open.feishu.cn/open-apis/bot/v2/hook/95d20add-3cc9-4bad-97eb-2b817d3428ee
#要发送的信息
content="-打包类型:${buildType}\n-分支:${branchName}\n-更新内容:${uploadDescription}\n-ipa包目录在:${new}\n-下载链接:http://d.maps9.com/mlvq"  
 

#换行用\n 空格用\t




fir login -T "9392a78ca4489b3be9b60b5eac8d76bb"
fir publish $new
echo -e "\033[32m =================上传成功 ================= \033[0m"


curl -X POST \
  $api \
  -H 'Content-Type: application/json' \
  -d '{
    "msg_type": "post",
    "content": {
        "post": {
            "zh_cn": {
                "title": "WikiFx_iOS打包成功!",
                "content": [
                    [
                        {
                            "tag": "text",
                            "un_escape": true,
                            "text": "'$content'"
                        }
                    ],
                    [

                    ]
                ]
            }
        }
    }
}'

<think>好的,我需要帮助用户了解如何在Flutter项目中实现云构建。首先,我得明确云构建的概念,它指的是在云端服务器上自动化编译、打包和部署应用程序,这样可以节省本地资源,提高效率,并支持持续集成和交付。 接下来,我应该参考用户提供的引用内容。引用[2]提到了使用腾讯云Cloud Studio进行项目搭建,这可能是一个可行的工具。引用[4]介绍了Supabase Flutter,虽然主要涉及数据库和认证,但可能需要确认是否支持构建功能。另外,引用[1]中的Flutter DevTools主要用于调试和性能分析,可能不直接涉及云构建,但可以作为辅助工具。 首先,我需要列出常见的云构建方法和工具。比如,使用CI/CD平台如GitHub Actions、GitLab CI/CD、CircleCI等,或者云服务商提供的工具如腾讯云Cloud Studio、Firebase、Codemagic等。然后,结合用户提供的引用,重点介绍腾讯云Cloud Studio和Codemagic,因为这两个在用户提供的资料中有相关的内容或属于常见工具。 接下来,分步骤说明如何操作。例如,使用腾讯云Cloud Studio的步骤可能包括创建工作空间、配置环境、安装依赖、构建命令等。而Codemagic则需要关联代码仓库、配置工作流、设置构建脚本等。同时,可以提到使用Flutter DevTools进行性能分析,作为构建后的优化步骤。 还需要考虑生成相关问题,可能涉及如何选择工具、优化构建速度、处理构建失败的问题,以及结合其他云服务如Supabase或Bmob进行扩展。 需要确保回答结构清晰,步骤详细,并引用提供的资料中的相关内容,比如引用[2]中的Cloud Studio实战训练营,引用[1]中的Flutter DevTools。同时,避免使用Markdown格式,保持自然的中文表达,符合用户的要求。</think>在Flutter项目中实现云构建可以通过以下方法和工具完成,具体步骤如下: --- ### 一、云构建的核心方法 1. **持续集成/持续部署(CI/CD)** 通过云端自动化流程完成代码编译、测试、打包和发布。常见的CI/CD平台包括: - **GitHub Actions**:与GitHub仓库深度集成,支持自定义构建流程。 - **GitLab CI/CD**:适用于私有仓库,支持多阶段流水线。 - **Codemagic**:专为Flutter设计的CI/CD工具,提供预配置的云构建环境[^2]。 2. **云IDE与云端开发环境** 例如**腾讯云Cloud Studio**,可直接在云端配置Flutter环境并运行构建命令,无需本地安装依赖。 --- ### 二、具体实现步骤(以腾讯云Cloud Studio为例) 1. **创建云端工作空间** - 登录[腾讯云Cloud Studio](https://cloudstudio.net/),新建Flutter项目或导入现有项目仓库。 - 选择预置的Flutter环境模板,自动配置SDK和依赖。 2. **配置构建命令** 在终端中执行以下命令: ```bash flutter pub get # 安装依赖 flutter build apk # 构建Android APK flutter build ios # 构建iOS应用(需配置证书) ``` 3. **自动化部署(可选)** - 通过Cloud Studio的插件集成**GitHub Actions**或**Jenkins**,实现代码推送后自动触发云构建。 - 构建产物(如APK/IPA)可上传至云存储或分发平台(如Firebase App Distribution)。 --- ### 三、专用Flutter云构建工具:Codemagic 1. **配置流程** - 关联GitHub/GitLab/Bitbucket仓库。 - 选择Flutter版本,配置构建脚本(如`codemagic.yaml`)。 - 设置构建后操作(如上传到应用商店或TestFlight)。 2. **优势** - 原生支持Flutter,无需手动配置环境。 - 提供并行测试和跨平台构建(Android/iOS/Web)。 --- ### 四、调试与优化 - 使用**Flutter DevTools**分析构建性能,定位耗时任务(如资源压缩或插件编译)[^1]。 - 通过缓存依赖(如`pub-cache`)减少重复下载,加速构建流程。 --- ### 五、扩展场景 - 结合**Supabase**或**Bmob**实现构建后自动更新云数据库或存储静态资源[^3][^4]。 - 集成自动化测试框架(如`flutter_test`),确保构建产物稳定性。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值