iOS-打包ipa兼容CocoaPods管理的项目

iOS通itms-services://协议安装ipa,省去https环境的搭建

脚本如下

  • 首先在Xcode配置好相应的证书和描述文件
  • copy如下脚本新建一个shell文件如pkg.sh放在项目根目录
    然后在终端执行sh pkg.sh 输入必要的参数开始打包
例如:sh pkg.sh Debug 

Shell Code

#!/bin/bash
#自动化编译打包脚本
#相关设置 1.PROJECT->Info->Configuations 点击加号添加自己需要的环境名
# 2.PROJECT->Build Settings->Basic->Preprocessor Macros 设置对应环境的键值
# 步骤3可选,如果是swift开发或者混编需要设置
# 3..PROJECT->Build Settings->Basic-> Swift compiler - Custom Flags -> Active Comilation Conditions  对应环境的键值
#Config  表示服务器环境 Dubug:开发 Qa:测试 Release:生产
# `pwd` 表示当前路径
#Project_Name 根据工程的名字作修改

# 获取当前目录
currentDir=`pwd`

#用/分割路径
OLD_IFS="$IFS"
IFS="/"
dirNames=($currentDir)
IFS="$OLD_IFS"

#获取数组长度
length=${#dirNames[@]}
echo "分割结果:"${dirNames[@]}
projectName=${dirNames[$length-1]}
echo "项目名称:"$projectName

scheme=$projectName
echo "ppp-"$scheme
#选择环境
choose=0;

if [[ $1 == 'Debug' ]]; then
    choose=1
fi

if [[ $1 == 'Qa' ]]; then
    choose=1
fi
if [[ $1 == 'Release' ]]; then
    choose=1
fi

#获取命令行参数
# $0 是指令文件
# $1 第一个参数
# $2 第二个参数,依此类推

echo '环境:'$1
if [[ $choose == 0 ]]; then
    echo '注意选择环境,用法如下:'
    echo 'sh package.sh  Debug|Qa|Release'
    echo '0表示没有使用workspace管理,1表示使用workspace管理(当使用pod管理第三方库时)'
    echo ''
    exit
fi
echo '开始打包。。。'

# 导出plist的文件格式,建议首先使用Xcode 对项目 archive 后导出查看格式,并补充对应值
# 因为这个格式会随着Xcode的版本变化二变化
pkg_plist="pkg.plist"
if [ ! -f $pkg_plist ]
then
    /usr/libexec/PlistBuddy -c "print" pkg.plist
    /usr/libexec/PlistBuddy -c "Add :bundle-identifier string ${projectName}" $pkg_plist
    /usr/libexec/PlistBuddy -c "Add :bundle-version string 1.0.0" $pkg_plist
    /usr/libexec/PlistBuddy -c "Add :kind string software" $pkg_plist
    /usr/libexec/PlistBuddy -c "Add :title string ${projectName}" $pkg_plist
fi


config=$1 #项目模式Debug/Release等
archivePath= build/$projectName.xcarchive

#判断当前目录是否有 *.xcworkspace的目录
isPod=0
if [[  -d $projectName.xcworkspace ]]; then
    isPod=1
fi

if [ ${isPod} == 1 ]
then
echo 'pod----------------'
xcodebuild archive \
-workspace $projectName.xcworkspace \
-archivePath $projectName \
-scheme $projectName \
-configuration $config
else
echo 'nopod---------'
xcodebuild archive \
-project $projectName.xcodeproj \
-archivePath $projectName \
-scheme $projectName \
-configuration $config
fi


#打包
exportPath="./ipa/" #archive导出目录(ipa包)
if [ ! -d $exportPath ]
then
  mkdir $exportPath
fi
xcodebuild -exportArchive -archivePath ./$projectName.xcarchive \
-exportPath $exportPath \
-exportOptionsPlist ./$pkg_plist


#打开ipa目录
open -R $exportPath

iOS通itms-services://协议安装ipa,省去https环境的搭建

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

推荐阅读更多精彩内容