美文网首页CI/CD
解决在Mac下搭建Jenkins+GitLab持续集成环境踩到的

解决在Mac下搭建Jenkins+GitLab持续集成环境踩到的

作者: liuxingzi | 来源:发表于2016-10-08 11:54 被阅读599次

此坑也不算什么坑啦,主要是升级带来的麻烦。

升级MacOS后,原来的Jenkins不能用了,又重新装了一次。

XCode8后就没有直接用XCode插件了。

构建时,直接使用Execute Shell了。

构建脚本


脚本如下:

# used to name the ipa

APP_NAME=你的应用的名称

# project name, the same as the .xcodeproj file name

PROJECT_NAME="你的项目名称"

# scheme name

SCHEME_NAME="Scheme名"

# profile name

DEVELOPMENT_TEAM="TeamID 如:F7XXXXXXW"

PROFILE_NAME="需要打包的Profile名"

PROFILE_UUID="XXXXXX-XXXX-4c92-XXXX-089f48dbc928"

# configuration for archive  Release或者Debug

CONFIGURATION="Release"

# login password, to unlock login keychain

LOGIN_PASSWORD="你的登录密码用于解锁"

PROJECT_PATH=${WORKSPACE}/${APP_NAME}

security unlock-keychain -p ${LOGIN_PASSWORD} ${KEYCHAIN_PATH} || failed "unlock-keygen"

rm -rf build/*

mkdir -pv build

# archive

xcodebuild clean archive -workspace "${APP_NAME}.xcworkspace" \

-scheme ${SCHEME_NAME} \

-sdk iphoneos \

-configuration "${CONFIGURATION}"  \

-archivePath build/${PROJECT_NAME}.xcarchive  \

DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \

CODE_SIGN_IDENTITY="${CODE_SIGNING_IDENTITY}"  \

PROVISIONING_PROFILE="${PROFILE_UUID}"  \

SYMROOT="${PROJECT_PATH}/build" \

|| failed "xcodebuild archive"

# export ipa

xcodebuild -exportArchive -archivePath build/${PROJECT_NAME}.xcarchive \

-exportPath build/${PROJECT_NAME} \

-exportFormat ipa \

-exportProvisioningProfile "${PROFILE_NAME}" \

-verbose \

|| failed "xcodebuild export archive"

 

因为我的APP里用到了推送,而我打包的是企业包,不支持推送,所以需要在打包前修改一下project文件。

这里面后来我又增加了两项

# 修改企业版本不支持推送

sed -i '' '/Push = {$/N;s/Push = {.*enabled = 1;/Push = {\

enabled = 0;/' ${WORKSPACE}/${APP_NAME}/${APP_NAME}.xcodeproj/project.pbxproj

sed -i '' '/aps-environment<\/key>$/N;/key>\n.*development/d' ${ENTITLEMENTS_PATH}

用sed 命令修改文件

关于sed命令可以百度(其实是Google啦)

学习了一上,发现很强大呀。

补:

后来发现 xcodebuild命令不能改profile,不知道原因了。

那就直接用sed命令去修改project文件吧,这样总可以了吧。

sed -i '' -e 's/DEVELOPMENT_TEAM = .*;/DEVELOPMENT_TEAM = '${DEVELOPMENT_TEAM}';/g' -e 's/PROVISIONING_PROFILE = .*;/PROVISIONING_PROFILE = "'${PROFILE_UUID}'";/g' -e 's/PROVISIONING_PROFILE_SPECIFIER = .*;/PROVISIONING_PROFILE_SPECIFIER = '${PROFILE_NAME}';/g' PROJECT_NAME.xcodeproj/project.pbxproj


相关文章

网友评论

    本文标题:解决在Mac下搭建Jenkins+GitLab持续集成环境踩到的

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