一、自动打包 首先知道需要使用xcodebuild命令
没有使用 cocoapod的项目命令稍微简单一点点
本文主要说的是 使用了cocoapod项目如何使用xcodebuild命令
1.xcodebuild 的基本命令 xocde9之后 不支持 /usr/bin/xcrun 导出ipa包了 所以 查了资料 使用 第二种 打包方式 但是第一种方式的命令 我也给出来了 需要 去xcode9之前的版本里 拷贝对应的文件
Before: xcrun with PackageApplication
# Build the application
xcodebuild \
-scheme "${SCHEME_NAME}" \
-sdk "${TARGET_SDK}" \
-configuration Release build
# Package the application
/usr/bin/xcrun \
-sdk "${TARGET_SDK}" \
PackageApplication \
-v "${PROJECT_BUILDDIR}/${SCHEME_NAME}.app" \
-o "${BUILD_OUTPUT_DIR}/${APP_NAME}.ipa" \
--sign "${DEVELOPER_NAME}" \
--embed "${PROVISIONING_PROFILE}"
用下面这种最新的打包命令
After: xcodebuild with -exportArchive
# Archive the application
xcodebuild \
-scheme "${SCHEME_NAME}" \
-sdk "${TARGET_SDK}" \
-archivePath "${PROJECT_BUILDDIR}/${SCHEME_NAME}.xcarchive" \
-configuration Release \
PROVISIONING_PROFILE="${PROVISIONING_PROFILE}" \
archive
# Export the archive to an ipa
xcodebuild \
-exportArchive \
-archivePath "${PROJECT_BUILDDIR}/${SCHEME_NAME}.xcarchive" \
-exportOptionsPlist "${EXPORT_PLIST}" \
-exportPath "${BUILD_OUTPUT_DIR}"
实际例子,我目前的项目
1.build archive
xcodebuild archive
-workspace Saas_M.xcworkspace
-scheme Saas_M
-configuration Release
-archivePath /Users/renqianbei/Desktop/Saas_M/autobuild/archive/Saas_M.xcarchive
CONFIGURATION_BUILD_DIR=/Users/renqianbei/Desktop/Saas_M/autobuild/build
CODE_SIGN_IDENTITY="证书"
PROVISIONING_PROFILE="配置文件对应值"
2.导出ipa
xcodebuild -exportArchive
-archivePath /Users/renqianbei/Desktop/Saas_M/autobuild/archive/Saas_M.xcarchive
-exportOptionsPlist /Users/renqianbei/Desktop/Saas_M/autobuild/Saas_MExportOptions.plist
-exportPath /Users/renqianbei/Desktop/Saas_M/autobuild/ipaDir/saasM2018.ipa
这有个 Saas_MExportOptions.plis 文件需要自己创建 如下
list 中key 红色部分是 bundleID 对应后面的Value 是 Provisioning Profile 对应的名字 SaasM 如下
plist 中method 对应的 是 打包对应的环境 各种环境对应的Provisioning 也需要对应
目前是development 对应的dev的profilename
对应各种环境打包参数
method=app-store,uploadBitcode=YES,uploadSymbols=YES
method=enterprise,compileBitcode=NO
method=development,compileBitcode=NO
method=ad-hoc,compileBitcode=NO