Flutter Jenkins iOS端自动打包并上传蒲公英

source ~/.bash_profile

keychain-这里可能你进去看到只有login.keychain-db,复制一份然后去掉-db即可

security unlock-keychain -p 123456 ${HOME}/library/keychains/login.keychain

工程名-在xcode中查看PROJECT

APP_NAME="Runner"

target-在xcode中查看TARGETS

TARGET_NAME=“Runner”

证书

这里是钥匙串中证书的显示简介-常用名称

CODE_SIGN_DISTRIBUTION="Apple Development: *** (42K****6R7)"

这里是mobileprovision文件的UUID

provisoning_profile="e4***196-ff9f-4fcf-992c-5674*****678"

模式

CONFIGURATION="Release"

路径 这个路径要自己看/Users/你的电脑用户名/.jenkins/workspace/下的,你每建一个项目,构建后都会在这下面创建对应的文件夹存放git clone下来的项目

WORKSPACE_PATH={WORKSPACE}/ios/{APP_NAME}.xcworkspace

这个是导出ipa用的文件,用xcode导出一个对应模式的ipa就能获取到,把那个文件的路径放这里

EXPORT_OPTIONS=/Users/ceshishiyong/Desktop/yc_supply_app/ExportOptions.plist
ArchivePath=/Users/cg/.jenkins/workspace/suIOS@tmp/
EXPORTIPA=/Users/cg/.jenkins/workspace/suIOS@tmp/

清空存放ipa的文件夹

cd ${EXPORTIPA}
rm -rf *

将指定文件的指定内容替换掉pro/dev/test

这里是修改main_primary文件的指定内容,切换环境

如下示例意思是,使用app5test.wit替换该文件的从app开始,到wit结束的指定字段

cd ${WORKSPACE}//lib/flavors

sed -i '' "s/app.*wit/app5test.wit/" main_primary.dart

flutter pub get

cd ${WORKSPACE}/
flutter pub get

build app,里面的primary是前面的target

flutter build ipa --release

进入原生项目 archive和export

cd ${WORKSPACE}/ios/
pod install

导出achive,里面的primary是前面的target

xcodebuild archive -workspace {WORKSPACE_PATH} -scheme Runner -configuration Release -archivePath{ArchivePath}runner.xcarchive

导出ipa

xcodebuild -exportArchive -archivePath {ArchivePath}runner.xcarchive -exportPath{EXPORTIPA}runner -exportOptionsPlist ${EXPORT_OPTIONS}

echo "=================上传到蒲公英分发平台 ================="

curl -F "file=@{EXPORTIPA}runner/zsh_supply.ipa" -F "_api_key=8f13b4ba40e56cff48e9642cc3ef462f" -F "buildUpdateDescription={SCM_CHANGELOG}" https://www.pgyer.com/apiv2/app/upload

ipa重命名(这里重命名是因为上传svn有统一的命名格式)

info.plist路径

project_infoplist_path=${WORKSPACE}/ios/Runner/Info.plist

取版本号

bundleVersion=(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "{project_infoplist_path}")

取build值

bundleBuild=(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "{project_infoplist_path}")

获取年月日时分

DATE="(date +%Y%m%d%H%M)" cd{EXPORTIPA}runner

拼接新名字

ipaReName={bundleVersion}-{bundleBuild}-${DATE}.ipa

替换

mv zsh_supply.ipa ${ipaReName}

待提交文件

myFile=${ipaReName}

ipa文件地址

resource_dir={EXPORTIPA}runner/{myFile}
echo "====================== ssh commit end ======================"

NGINX_ADDR=192.168..*

scp /Users/ceshishiyong/.jenkins/workspace/witParkingIOS@tmp/runner/{ipaReName} root@{NGINX_ADDR}:/home/nginx/www/download/pre/ios/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容