Xcode终端打包ipa脚本(简单版本)

#author by CooFree

#脚本所在的目录必须和WorkSpace或者说工程主目录所在的目录在同一个目录层级中

#在终端中cd到项目路径下,输入sh autobuild.sh运行脚本,按照步骤输入相应的序号点击回车键即可完成打包选择(如果运行的时候出现Permission denied,请先在终端中执行chmod a+x *.sh再运行即可

#运行完成后后项目里会多了一个autoExportIpa文件夹,打开文件夹即可找到ipa包。

#配置打包方式Release或者Debug

#工程名字

Project_Name="自动化打包" #这里填的是工程名字,一般工程名都是英文,我这里是为了方便起了中文名字

#在终端中提示 根据输入的序号不同来选择是打debug包还是release包

echo "~~~~~~~~~~~~选择打包方式(输入序号)~~~~~~~~~~~~~~~"

echo " 1 Debug"

echo " 2 Release"

read parameter

sleep 0.5

method="$parameter"

if [ -n "$method" ]

then

if [ "$method" = "1" ]

then

Configuration="Debug"

elif [ "$method" = "2" ]

then

Configuration="Release"

else

#如果是其他输入,则在终端中提示参数无效并退出

echo "参数无效...."

exit 1

fi

fi

#基础主路径

BUILD_PATH=./autoExportIpa

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

#AdHoc版本

AdHocPrijectOutPath=${BUILD_PATH}

ADHOCExportOptionsPlist="./auto.plist" #这里的auto.plist是和在工程目录下新建的plist文件是一样的

#这里都执行命令中是在xcworkspace工程中执行的,如果工程不是xcworkspace,可以把-workspace的内容删掉

#首先清除原来的文件夹

rm -rf ${BUILD_PATH}

#创建文件夹,路径需要一层一层创建,不然会创建失败

mkdir ${BUILD_PATH}

#编译文件

#mkdir ${CONFIGURATION_BUILD_PATH_ADHOC}

#打包输出的文件

mkdir ${AdHocPrijectOutPath}

#在终端中提示 根据输入的序号不同,打包成不同版本的ipa 因为项目中是否使用CocoaPods编译时的路径是不一样的

echo "~~~~~~~~~~~~项目中是否使用CocoaPods~~~~~~~~~~~~~~~"

echo " 1 是"

echo " 2 否"

# 读取用户在终端中输入并存到变量里

read parameter

sleep 0.5

method="$parameter"

# 判读用户是否有输入

if [ -n "$method" ]

then

if [ "$method" = "1" ]

then

#编译-------项目中使用了CocoaPods

xcodebuild archive -workspace ${Project_Name}.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive

elif [ "$method" = "2" ]

then

#编译-------项目中未使用CocoaPods

xcodebuild archive -scheme $Project_Name -configuration $Configuration -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive

else

#如果是其他输入,则在终端中提示参数无效并退出

echo "参数无效...."

exit 1

fi

fi

#打包

xcodebuild -exportArchive -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive -exportOptionsPlist $ADHOCExportOptionsPlist -exportPath ${AdHocPrijectOutPath}

auto.plist内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>compileBitcode</key>
    <false/>
    <key>destination</key>
    <string>export</string>
    <key>iCloudContainerEnvironment</key>
    <string>Production</string>
    <key>method</key>
    <string>development</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>bundleID名字</key>
        <string>profile名字</string>
    </dict>
    <key>signingCertificate</key>
    <string>Apple Development</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>teamID名字</string>
    <key>thinning</key>
    <string>&lt;none&gt;</string>
</dict>
</plist>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容