ios重签名脚本

#!Get the root path
rootPath=$(cd "$(dirname "$0")"; pwd)



#可变参数区域
mobileprovision=${rootPath}/cert.mobileprovision
ipaPath=${rootPath}/1.ipa

#固定参数区域
outputDir=${rootPath}/output

#解析描述文件
certTeamName=`/usr/libexec/PlistBuddy -c "Print TeamName" /dev/stdin <<< $(security cms -D -i $mobileprovision)`
CODE_SIGN_IDENTITY="iPhone Distribution: $certTeamName"
PROVISIONING_PROFILE_SPECIFIER=`/usr/libexec/PlistBuddy -c "Print AppIDName" /dev/stdin <<< $(security cms -D -i $mobileprovision)`
UUID=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(security cms -D -i $mobileprovision)`
mobileprovisionName=`/usr/libexec/PlistBuddy -c "Print Name" /dev/stdin <<< $(security cms -D -i $mobileprovision)`
BUNDLEID_ENTIFIER=`/usr/libexec/PlistBuddy -c "Print Entitlements:application-identifier:" /dev/stdin <<< $(security cms -D -i $mobileprovision)`
BUNDLEID_ENTIFIER=${BUNDLEID_ENTIFIER#*.}


DESTENT=${rootPath}/entitlements.plist
PROFILE="${rootPath}/profile.plist"
rm -drf ${DESTENT}
rm -drf ${PROFILE}
/usr/bin/security cms -D -i ${mobileprovision}  > "${PROFILE}"
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' "${PROFILE}" > "${DESTENT}"
/bin/rm "${PROFILE}"

echo "CODE_SIGN_IDENTITY:$CODE_SIGN_IDENTITY \n描述文件名字:$mobileprovisionName \nBUNDLEID_ENTIFIER:$BUNDLEID_ENTIFIER"


#开始处理IPA,解压ipa包
rm -drf $outputDir
mkdir $outputDir
unzip $ipaPath -d $outputDir
APPNAME=`ls ${outputDir}/Payload | grep app`
APPNAME=${APPNAME%%\.app}
echo "APPNAME $APPNAME"


#修改bundleID
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier ${BUNDLEID_ENTIFIER}" ${outputDir}/Payload/${APPNAME}.app/Info.plist
#替换描述文件
rm -drf ${outputDir}/Payload/${APPNAME}.app/embedded.mobileprovision
cp -r -f ${mobileprovision} ${outputDir}/Payload/${APPNAME}.app/embedded.mobileprovision

#处理插件的重签名

#签名ipa包 dylib貌似不需要重签名
resignFramework()
{
    frameworkDir=$1
    #删除所有log
    for i in `ls $frameworkDir`
    do
    ext=${i##*.}
    if [ "$ext" == "framework" ]; then
    echo "重签名FrameWork $i"   
    codesign -f -s "$CODE_SIGN_IDENTITY" --entitlements "$DESTENT" ${frameworkDir}/$i
    fi
    done 
}
resignFramework ${outputDir}/Payload/${APPNAME}.app
resignFramework ${outputDir}/Payload/${APPNAME}.app/Frameworks

#重签名App"
codesign -f -s "$CODE_SIGN_IDENTITY" --entitlements "$DESTENT" ${outputDir}/Payload/${APPNAME}.app

#重签名结束,压缩Ipa包"
cd ${outputDir}
zip -r resign.ipa Payload
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值