美文网首页
shell 重签 IPA 包

shell 重签 IPA 包

作者: 新南12138 | 来源:发表于2021-05-06 16:59 被阅读0次

简介

最近有 ipa 包的重签需求,在此记录一下

shell 脚本

#重签路径
sign_path=$1

#需要重签的 ipa 路径
ipa=$2

cd $sign_path

#替换 pp 文件名
provisioningProfile='xxxxx.mobileprovision'

#替换 team id
distributionCertificate='iPhone Distribution:  XXXXX'

#替换 bundleid
bundleIdentifier="com.xxxx.xxxx"

echo "解压缩 ipa  ********** "

unzip -q "$ipa"

cd Payload
declare -a appsInPayload=()
appsInPayload=$(find . -name '*app' | sed 's|^\./||')
cd ..
if [[ ${#appsInPayload[*]} -gt 1 ]]; then
  echo "Payload 中不止包含 1 个.app 文件 **********/ (${appsInPayload[*]})"
  echo -e "重签失败 **********"
  exit 1
fi
app=$appsInPayload

echo -e"删除原有的 _CodeSignature**********"
rm -r -f Payload/"$app"/_CodeSignature

echo -e"解密 pp 文件**********"
security cms -D -i "$provisioningProfile" > ProvisioningProfile.plist 2>&1

/usr/libexec/PlistBuddy -x -c 'Print Entitlements' ProvisioningProfile.plist > Entitlements.plist 2>&1

echo -e"将新的 pp 文件拷贝到 app 中 ********** "
cp "$provisioningProfile" Payload/"$app"/embedded.mobileprovision
if [[ -n $bundleIdentifier ]]; then
  /usr/libexec/PlistBuddy -x -c "Set :CFBundleIdentifier $bundleIdentifier" Payload/"$app"/Info.plist
else
    echo ""
fi

echo -e"重签所有的动态库 **********"

if [[ -e Payload/$app/Frameworks ]]; then
  cd Payload/"$app"/Frameworks
  swiftLibraries=$(find . -name '*dylib')
  SDK_PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/"
  for dylib in $swiftLibraries; do
    codesign -f -s "$distributionCertificate" "$dylib"
  done
  frameworks=$(find . -name '*framework')
  for framework in $frameworks; do
    codesign -f -s "$distributionCertificate" "$framework"
  done
  cd ../../..
fi

codesign -f -s "$distributionCertificate" --entitlements Entitlements.plist Payload/"$app"

echo "重新生成 ipa 文件 **********"
zip -q -r resigh.ipa Payload SwiftSupport Symbols

echo -e "重签完成 **********"

相关文章

  • shell 重签 IPA 包

    简介 最近有 ipa 包的重签需求,在此记录一下 shell 脚本

  • ios ipa重签

    1、可以使用iResign工具重签ipa包得到entitlements.plist 2、解压ipa包 unzip ...

  • iOS逆向实战--014:应用重签名

    应用重签名,就是把已经存在的ipa包,重新配置一套证书和描述文件,再签名生成一个新的ipa包 codesign重签...

  • iOS开发-ipa重签

    ipa重签,就是将已经获取到的ipa包,通过已有的证书重新签名,这个ipa包获取的途径有很多,有的是别人直接发给你...

  • ipa基于Codesign命令重签

    ipa基于Codesign命令重签 1、解压ipa文件 2、查看文件 3、显示包内容,查看目录结构 4、查看xxx...

  • iOS - 企业签相关

    企业签挂靠服务器 一、常规ipa重签为企业签ipa; 二、企业签ipa发给后台,后台存储到https服务器哪个目录...

  • iOS开发——ipa包重签

    在iOS开发中,为了方便测试和内部体验,往需要对ipa使用企业证书重新签名,然后在内部进行分发。接下来,就介绍如何...

  • ipa重签

    终端ssh登录mac用shell打包ipa报错:replacing existing signature 终端ss...

  • 重签ipa

    让.保罗.萨特曾说过:现实的精华就是匮乏,一种普遍而永恒的欠缺。人生重要的不是填补一种不完美,而是找到自己的位置。...

  • app启动优化

    测试启动时间 下面我们通过重签名微信的IPA包来测试一下微信的启动耗时。创建一个项目,然后将微信的IPA包以及重签...

网友评论

      本文标题:shell 重签 IPA 包

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