#!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
ios重签名脚本
最新推荐文章于 2023-01-12 10:00:00 发布
1万+

被折叠的 条评论
为什么被折叠?



