• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

iOS 自动打包脚本配置和上传到TestFlight

武飞扬头像
君陌笑
帮助1

背景

之前公司打包并不统一,测试取包走的是自动打包流程,App打包上传到TestFlight以供审核采用的是人工打包及上传,人力重复劳动就很不舒服,所以搜索资料搞了搞自动打包与自动上传TestFlight的脚本。

打包过程中所需要的各种目录路径

为了便于在不同开发者拉取代码之后都能够顺利打包,不需要再动脚本,我将脚本放到了项目工程同目录下

#当前工作目录

WORKSPACE_PATH=`pwd`

#工程目录

PROJECT_PATH=$(dirname "${WORKSPACE_PATH}")/AllYoga/

#获取主工程路径

PROJECT=${PROJECT_PATH}/${PROJECT_NAME}.xcodeproj

PROJECT_W=${PROJECT_PATH}/${PROJECT_NAME}.xcworkspace

BUILD_DIR=${WORKSPACE_PATH}

# 删除缓存目录
rm -rf ${BUILD_DIR}/output

mkdir ${BUILD_DIR}/output

#指定archive路径

ARCHIVE_PATH=${BUILD_DIR}/output/${PROJECT_NAME}.xcarchive

#指定到处文件的路径和对应的plist文件路径

EXPORT_PATH=${BUILD_DIR}/output

API_KEY=""

API_ISSUER_KEY=""

如上述脚本的一些目录路径配置,这里说明的一点在当前目录下获取上级目录的方法

$(dirname "${WORKSPACE_PATH}")

学新通

学新通

整体目录是这个样子,打包脚本及产出物统一放置在与项目工程目录同级的package文件下,这两者的上级目录为git操作的文件

API_KEY 及 API_ISSUER_KEY

上传TestFlight需要用到这两个参数,参数获取可以到 用户和访问-> 密钥 -> AppStoreConnect API,生成一下,要注意,生成之后将对应的.p8文件下载下来保存好,这个文件只能下载一次,可以放到git仓库保管,下载后,还需要在电脑的用户目录下新建一个 private_keys文件,将.p8文件放到里面,否则在上传TestFlight时可能报错

学新通

Archive 脚本

#echo "删除xcode缓存文件"

rm -drf ~/Library/Developer/Xcode/DerivedData/*

  


#再clean一次目标PROJECT_NAME

xcodebuild clean -configuration ${BUILD_TYPE} -workspace ${PROJECT_W} -scheme "${PROJECT_NAME}"

  


#xcodebuild编译

if [ ${BUILD_TYPE} == "Debug" ];then

xcodebuild  -configuration ${BUILD_TYPE} -workspace ${PROJECT_W} -scheme "${PROJECT_NAME}" -sdk iphoneos VALID_ARCHS="armv7 arm64" -archivePath ${ARCHIVE_PATH} archive

else

xcodebuild  -configuration ${BUILD_TYPE} -workspace ${PROJECT_W} -scheme "${PROJECT_NAME}" -sdk iphoneos VALID_ARCHS="armv7 arm64" -archivePath ${ARCHIVE_PATH} archive

fi

Export 出ipa文件

xcodebuild  -exportArchive -archivePath ${ARCHIVE_PATH} -exportPath ${EXPORT_PATH} -exportOptionsPlist ${BUILD_DIR}/ExportOptions.plist || exit 1

上传TestFlight

# 上传ipa

 xcrun altool --upload-app -f ${IPAPATH} -t iOS --apiKey ${API_KEY} --apiIssuer ${API_ISSUER_KEY} --verbose

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgahgff
系列文章
更多 icon
同类精品
更多 icon
继续加载