iOS ipa 文件重签名脚本,快速重签名app

注意:
1、此重签名脚本针对 没有加壳的 ipa 文件
2、此脚本可做修改,实现签名一个 扩展文件 appex,和多个 第三方 .framework库

shell脚本

#!/bin/bash

# 输入参数
cert_name="Apple Distribution: san zhang (xxxxxxxx)"  # 开发者证书名称

provisioning_profile="App_dis.mobileprovision"  # app用于重签名的配置文件路径
ex_provisioning_profile="Tun_dis.mobileprovision" # 扩展用于重签名的配置文件路径



app_name="appName" # appName.app
ipa_path="$app_name.ipa"  # 原始的IPA文件路径 appName.ipa

# 清理临时目录
TempPath="temp"

rm -rf "$TempPath"
mkdir -p "$TempPath"

# 解压原始的 ipa 文件
/usr/bin/unzip -q "$ipa_path" -d "$TempPath"

# 扩展路径
appex_path="$TempPath/Payload/$app_name.app/PlugIns/Tun.appex"

/bin/cp "$ex_provisioning_profile" "$appex_path/embedded.mobileprovision"

security cms -D -i "$ex_provisioning_profile" > "$TempPath/profile.plist"
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' "$TempPath/profile.plist" > "$TempPath/entitlements.plist"

/usr/bin/codesign -f -s "$cert_name" --no-strict --entitlements="$TempPath/entitlements.plist" "$appex_path"

rm -rf "$TempPath/profile.plist"
rm -rf "$TempPath/entitlements.plist"


app_path="$TempPath/Payload/$app_name.app"

rm -rf "$app_path/embedded.mobileprovision"

touch "$app_path/embedded.mobileprovision"

/bin/cp "$provisioning_profile" "$app_path/embedded.mobileprovision"

security cms -D -i "$provisioning_profile" > "$TempPath/profile.plist"
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' "$TempPath/profile.plist" > "$TempPath/entitlements.plist"

# 重签名应用程序中的Frameworks文件夹
lib_path="$app_path/Frameworks"
find "$lib_path" -name "*.dylib" -o -name "*.framework" | while read framework; do
    rm -rf "$framework/_CodeSignature"
    /usr/bin/codesign -f -s "$cert_name" --no-strict --entitlements="$TempPath/entitlements.plist" "$framework"
done

rm -rf "$app_path/_CodeSignature"

/usr/bin/codesign -f -s "$cert_name" --no-strict --entitlements="$TempPath/entitlements.plist" "$app_path"


sign_ipa_path="'$app_name'_sign.ipa"

cd "$TempPath"

/usr/bin/zip -qry "$sign_ipa_path" "Payload"

rm -rf "Payload"
rm -rf "entitlements.plist"
rm -rf "profile.plist"


echo "重签名完成,新的IPA文件路径:$TempPath/$sign_ipa_path"

操作:
1、把所有文件 App_dis.mobileprovision,Tun_dis.mobileprovision,appName.ipa,sign.sh 放入一个文件夹中
2、修改 证书名为自己有效的证书名,已安装到mac 钥匙串
3、打开终端工具,cd 到当前文件夹,执行 ./sign.sh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于xocde自动化打包,其实网上的内容很多,自己在网上也找到了很多,大部分都是很正确的,这里我就只说下works...
    风依旧_c080阅读 1,742评论 0 3
  • 为什么重签名### 重签名可以把越狱市场上的app重新用我们自己的开发者证书进行签名,然后我们就可以在我们不越狱的...
    齐滇大圣阅读 17,694评论 9 23
  • 重签名可以把越狱市场上的app重新用我们自己的开发者证书进行签名,然后我们就可以在我们不越狱的手机上安装越狱应用了...
    PengPengPro阅读 6,090评论 0 1
  • 1、简介 利用Xcode的命令 security 和 codesign 重签ipa文件。重签名与Xcode里用bu...
    iHTCboy阅读 2,295评论 0 3
  • 现在主流的重签名有两种: 完全重签名 证书,mobileprovision、Bundle ID三者信息对应一致,这...
    Matthew1991阅读 758评论 0 1

友情链接更多精彩内容