51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

jenkins 利用shell脚本打包IOS项目实战

shell脚本打包IOS项目实战

本篇先不介绍jenkins,先来介绍 打包ios 相关的流程以及命令

在iOS的开发过程中总是免不了要不停的打包,通常的打包方式是这样的

XCode-> Producet ->Archive->Export

具体的可以参考:xcode 打包 流程(xcode14)

还要选择对应的证书与pp文件,进行一次打包会花不少的时间,在打包的过程中你啥都做不了,只能干等着。

这篇文章白眉大叔 主要介绍利用命令行来解放你的双手,让你在打包的时候能够释放你的双手。

xcodebuild 指令是苹果官方提供的命令行打包工具,你可以使用此命令来进行clean、build、test、archive。

要查看官方的使用指南,可以通过命令 man xcodebuild来查看

解下来 白眉大叔介绍一下常用的 xcodebuild 指令

(1)project

要构建xcode项目需要在工程所在目录运行xcodebuild指令,如果目录中含有多个preoject的话,就需要使用-project指令来指定需要构建的工程。默认情况下xcodebuild会以工程里默认的configuration来build工程里的第一个target。

(2)workspace

要构建workspce,需要设置-workspace与-scheme来定义构建,scheme用于指定要构建的targt以及怎样构建,也可以传递其他参数对scheme进行覆盖。

我们可以通过以下选项来查看工程中的环境-list 查看当前工程的信息,如:target列表、configuration列表、scheme列表,同时能看到默认的configuration-showBuildSettings 查看构建设置-showdestinations 仅对workspace有效-showsdks 查看SDK列表-usage 使用示例-version 查看当前版本xcodebuild 所有指令默认的configuration都是Release

(3)clean

#清理构建目录 默认的configuration为Releasexcodebuild clean#也可以指定configurationxcodebuild clean -configuration Debug

(4)build

### 默认构建xcodebuild build### 指定configurationxcodebuild build -configuration Debug

(5)test

test指令需要指定scheme, 同时还需要指定destination。 可以通过-showdestinations指令来获取可用的destination

xcodebuild -showdestinations -scheme demo_xocdebuild
xcodebuild test -scheme demo_xocdebuild -destination "platform=iOS Simulator,name=iPhone 8"

(6)archive

需要注意的archive时要指定scheme才行

#project的archivexcodebuild archive -scheme demo_xocdebuild -archivePath test

(7)exportArchive

此指令用于导出ipa包,必填参数archivePath、exportPath、exportOptionsPlist

### option.plist用于指定打包的method等,此文件可以通过用xcode打包后生成xcodebuild -exportArchive  -archivePath test.xcarchive -exportPath test   -exportOptionsPlist 'ExportOptions.plist'

第2部分上 脚本 test.sh

将test.sh 此脚本放到项目路径下,然后执行即可

sh  test.sh

 

 

#!/bin/sh### 配置定义PROJECT_NAME="test"# 获取当前脚本路径# basepath=$(cd `dirname $0`; pwd)CONFIGURATION="Debug"#工程名WORKSPACE="demo.xcworkspace"#设置打包路径PACKAGE_PATH="Package"#archive pathXCARCHIVE_PATH="${PACKAGE_PATH}/xcarchive/${PROJECT_NAME}.xcarchive"#ipa 路径IPA_Path="${PACKAGE_PATH}/ipa"#ipa名称IPAFILE_NAME="${PROJECT_NAME}.ipa"#导出ipa路径EXPORT_PATH="${IPA_Path}/${IPAFILE_NAME}"optionPlistName="ExportOptions"# cleanecho "xcodebuild clean"xcodebuild clean -workspace ${WORKSPACE} \
             	   -scheme ${PROJECT_NAME} \
                 -configuration ${CONFIGURATION} \
                 | xcpretty 

# archiveecho "xcodebuild archive"xcodebuild archive -workspace ${WORKSPACE} \
                   -scheme ${PROJECT_NAME} \
                   -configuration ${CONFIGURATION} \
                   -destination generic/platform=iOS \
                   -archivePath ${XCARCHIVE_PATH} \
                   | xcpretty 
                   

# testxcodebuild  test -workspace ${WORKSPACE} \
                 -scheme ${PROJECT_NAME} \
                 -sdk iphonesimulator \
                 -destination 'platform=iOS Simulator,name=iPhone 8' \
                | xcpretty 

# export ipaecho "xcodebuild exportArchive"xcodebuild -exportArchive -archivePath ${XCARCHIVE_PATH} \
                          -exportPath ${EXPORT_PATH} \
                          -exportOptionsPlist ${optionPlistName}.plist \
                          -verbose \
                          | xcpretty

 

这里要说明一下,  这里 ExportOptions.list  文件 需要 手动用xcode 生成ipa 后 复制到 项目的路径下,才可以。

 

运行结果:


赞(4)
未经允许不得转载:工具盒子 » jenkins 利用shell脚本打包IOS项目实战