美文网首页
Jenkins自动化远程Mac节点打包遇到问题整理

Jenkins自动化远程Mac节点打包遇到问题整理

作者: 空空游子墓 | 来源:发表于2021-08-17 09:21 被阅读0次

一、配置Linux 环境下jenkins ,具体配置步骤就不描述了,试试下面的链接

Linux环境下安装Jenkins(超详细)----

https://blog.csdn.net/qq_35868412/article/details/89475386

二、安装插件

   插件太多,无法一一指出每个插件的用途,不嫌麻烦可以都安装了 😂

三、配置节点

Credentials 添加

四、配置

#配置参数

#工程名字

Project_Name="xxx"

#配置打包方式Release或者Debug

Configuration="Debug"

#基础主路径

BUILD_PATH=./build

#不同版本的基础子路径

#Development

Development_PATH=${BUILD_PATH}/development

#配置编译文件的存放地址

#Development

CONFIGURATION_BUILD_PATH_Development=${Development_PATH}/${Configuration}-iphoneos

#配置打包结果输出的路径

#Development版本

DevelopmentPrijectOutPath=${Development_PATH}/DevelopmentOut

#如果工程中配置了Automatically manage signing,那么就不需要证书名和描述文件名,请确保工程中配置的证书名和描述文件是你打包想要用的

#ADHOC证书名#描述文件

DevelopmentCODE_SIGN_IDENTITY="Apple Development: xxxx xx (xxxxxxxxxx)"

DevelopmentPROVISIONING_PROFILE_NAME="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

#plist文件,可以先手动打包,会自动生成ExportOptions.plist文件,根据自己的项目替换信息

DevelopmentExportOptionsPlist="./ExportOptions.plist"

###下面这句很关键,本地自动化打包不需要,远程节点打包出现以下异常

###1、errSecInternalComponent Command PhaseScriptExecution failed with a nonzero exit code

###2、PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks

###Linux 服务器上的 Jenkins 调用 Mac Slave 时,是通过之前设置的 SSH 登录的方式,而 Apple 为了安全,在 ssh 登录时,是不允许读取 Keychains(钥匙串)的,所以 security -v unlock-keychain -p "yourpassword"这行命令就很重要了。在构建打包前,先解锁 Keychains。

security unlock-keychain -p "xxxxxx" ~/Library/Keychains/login.keychain

echo '**** 开始编译打包工程  ****'

xcodebuild archive -workspace ${Project_Name}.xcworkspace -scheme ${Project_Name} -configuration ${Configuration} -archivePath ./myArchivePath

如果使用的是手动导入配置文件,后面要加上下面,我使用的是Automatically manage signing 

#ODE_SIGN_IDENTITY="${DevelopmentCODE_SIGN_IDENTITY}" PROVISIONING_PROFILE="${DevelopmentPROVISIONING_PROFILE_NAME}"

echo '**** 编译打包工程完毕  ****'

echo '******  开始导出IPA ******'

xcodebuild -exportArchive -archivePath ./myArchivePath.xcarchive -exportOptionsPlist ./ExportOptions.plist -exportPath DevelopmentPrijectOutPath

echo '******  导出IPA成功 ******'

#目前只有绝对路径上传成功,可根据Jenkins安装路径找到ipa的文件路径 例:(/Users/youzimu/.jenkins/workspace/xxxx/DevelopmentPrijectOutPath/CloudStorageCTS)

echo "****** 开始上传IPA包到蒲公英 ******"

curl -F "file=@/Users/youzimu/.jenkins/workspace/xxxx/DevelopmentPrijectOutPath/CloudStorageCTS.ipa" -F "uKey=xxxxxxxxxxxxxxxxxxx" -F "_api_key=xxxxxxxxxxxxxxxxxxxx" https://upload.pgyer.com/apiv1/app/upload

相关文章

网友评论

      本文标题:Jenkins自动化远程Mac节点打包遇到问题整理

      本文链接:https://www.haomeiwen.com/subject/olwdbltx.html