美文网首页
iOS App 重签脚本

iOS App 重签脚本

作者: CodingTom | 来源:发表于2019-08-15 17:28 被阅读0次

# ${SRCROOT} 为工程文件所在的目录
TEMP_PATH="${SRCROOT}/Temp"
#资源文件夹,放三方APP的
ASSETS_PATH="${SRCROOT}/APP"
#ipa包路径
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"



#新建Temp文件夹
rm -rf "$TEMP_PATH"
mkdir -p "$TEMP_PATH"

# --------------------------------------
# 1. 解压IPA 到Temp下
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"
# 拿到解压的临时APP的路径
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
# 这里显示打印一下 TEMP_APP_PATH变量
echo "TEMP_APP_PATH: $TEMP_APP_PATH"

# -------------------------------------
# 2. 把解压出来的.app拷贝进去
#BUILT_PRODUCTS_DIR 工程生成的APP包路径
#TARGET_NAME target名称
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "TARGET_APP_PATH: $TARGET_APP_PATH"

rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH/"

# -------------------------------------
# 3. 为了是重签过程简化,移走extension和watchAPP. 此外个人免费的证书没办法签extension

echo "Removing AppExtensions"
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"

# -------------------------------------
# 4. 更新 Info.plist 里的BundleId
#  设置 "Set :KEY Value" "目标文件路径.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"

# 5.给可执行文件上权限
#添加ipa二进制的执行权限,否则xcode会告知无法运行
#这个操作是要找到第三方app包里的可执行文件名称,因为info.plist的 'Executable file' key对应的是可执行文件的名称
#我们grep 一下,然后取最后一行, 然后以cut 命令分割,取出想要的关键信息。存到APP_BINARY变量里
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`


#这个为二进制文件加上可执行权限 +X
chmod +x "$TARGET_APP_PATH/$APP_BINARY"



# -------------------------------------
# 6. 重签第三方app Frameworks下已存在的动态库
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
#遍历出所有动态库的路径
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
echo "🍺🍺🍺🍺🍺🍺FRAMEWORK : $FRAMEWORK"
#签名
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi

# ---------------------------------------------------
# 7. 注入我们编写的动态库
echo "开始注入"
# 需要注入的动态库的路径  这个路径我就写死了!
#INJECT_FRAMEWORK_RELATIVE_PATH="Frameworks/libHankHook.dylib"
#
## 通过工具实现注入
#yololib "$TARGET_APP_PATH/$APP_BINARY" "$INJECT_FRAMEWORK_RELATIVE_PATH"
echo "注入完成"




相关文章

  • iOS App 重签脚本

  • 手动重签营业厅

    之前尝试过用脚本进行应用重签,使用MonkeyDev App对应用重签,但重签的步骤还是一知半解,最近重新看了下手...

  • iOS Shell脚本重签名越狱第三方APP

    之前通过Xcode对第三APP进行重签名, 这篇文章讲一下使用 Shell脚本进行重签. 对于脚本我们可以文件化,...

  • iOS逆向二-代码注入

    iOS逆向二-代码注入 脚本自动重签补一下上一篇的尾巴!重签过程其实完全可以通过脚本完成,我们啥都不用干的下面这个...

  • ipa包重签名

    重签名的三种方式 手动重签 \ xcode重签 \ shell脚本重签名 以微信越狱版举例 手动重签查看描述文件...

  • app重签名

    Ios下app重签名的原理及使用教程 流程: 1、解压ipa unzip appstore.ipa 2、删除旧的签...

  • iOS 重签

    iOS重签 第一步 下载 iOS App Signer如下图所示: 第二步,打开Xcode 新建一个项目.选好Te...

  • ipa重签脚本

    其中CERTIFICATE是证书名字,ORIGINAL_FILE是路径,'zxcv'是电脑密码 对于路径的命令搞不...

  • 2017最新ipa重签教程

    苹果ipa文件重签需要准备的东西 1、Mac电脑 2、重签用的ios证书 3、重签工具 教程分为两步 一、申请io...

  • 脚本模式重签名打包 ipa

    脚本重签名,命令使用的是 xcode 自身打包 下载脚本iOS_resign_scripts 把脚本文件和我们要重...

网友评论

      本文标题:iOS App 重签脚本

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