美文网首页
iOS ipa 文件重签名脚本,快速重签名app

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

作者: 移动的键盘 | 来源:发表于2024-05-27 10:35 被阅读0次

    注意:
    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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/rkmcqjtx.html