應用簽名-腳本簽名

簽名原理熟悉了,又可以手動對應用簽名,那麼就能夠將手動簽名部分寫成腳本,經過腳本,一步步實現手動簽名過程。腳本簽名中xcode會對.ipa作權限管理,所以不須要作權限簽名。shell

破殼ipa獲取:xcode

  1. 經過越獄手機獲取破殼應用;
  2. 經過PP助手獲取越獄應用。

新建xcode工程,在工程文件中新建兩個文件夾toolappbash

  1. tool文件存放簽名腳本;
  2. app文件存放要啓動的.ipa破殼應用。

簽名腳本:app

shell.png

腳本:佈局

#定義目錄路徑 ${SRCROOT}爲當前工程的根目錄
#定義臨時目錄變量,存放解.ipa後產生的臨時文件
TEMP_PATH="${SRCROOT}/temp"
#tool路徑
TOOL_PATH="${SRCROOT}/tool"
#定義APP資源目錄變量,存放要重簽名的APP
APP_PATH="${SRCROOT}/app"
#定義ipa包路徑
IPA_PATH="${APP_PATH}/*.ipa"
 #移除臨時文件,並從新建立文件夾
rm -rf "${TEMP_PATH}"
mkdir -p "${TEMP_PATH}"
 ###########一、解壓ipa到指定的文件下###########
unzip -o "$IPA_PATH" -d "$TEMP_PATH"
#獲取臨時app路徑
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
echo ".app文件路徑:$TEMP_APP_PATH"
 ###########二、修改應用info.plist的BundleId###########
# 設置 "Set :KEY Value" "Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TEMP_APP_PATH/Info.plist"
 ###########三、刪除擴展應用及插件###########
echo "Removing PlugIns and Watch"
rm -rf "$TEMP_APP_PATH/PlugIns"
rm -rf "$TEMP_APP_PATH/Watch"
 ###########四、給可執行文件執行權限###########
#獲取可執行文件路徑
APP_BINARY=`plutil -convert xml1 -o - $TEMP_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#給可執行文件權限
chmod +x "$TEMP_APP_PATH/$APP_BINARY"
 ###########五、從新簽名Frameworks下的全部動態庫###########
#獲取動態庫路徑
APP_FRAMEWORKS_PATH="$TEMP_APP_PATH/Frameworks"
#判斷文件是否存在
if [ -d "$APP_FRAMEWORKS_PATH" ]
then
#遍歷全部動態庫
for FRAMEWORK in "$APP_FRAMEWORKS_PATH/"*
do
echo "framework: $FRAMEWORK"
#對動態庫簽名 $EXPANDED_CODE_SIGN_IDENTITY xcode上的證書
/usr/bin/codesign -fs "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi
 ###########六、將修改後的.app移動到xcode對應的Products下###########
#BUILT_PRODUCTS_DIR xcode生成的.app包路徑
#TARGET_NAME 應用名稱
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "目標代碼路徑:$TARGET_APP_PATH"
rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH/"
複製代碼
  • 須要將腳本路徑添加到建立的Run Script
  • 注意:在工程中可能須要對SignApp.sh加可執行權限chmod +x SignApp.sh

shell.png

須要安裝的應用:post

ipa.png

以上步驟完成後幾個運行工程,編譯完後會自動執行腳本,在腳本中完成對應用的重簽名。spa

運行安裝:插件

iPhone.png

Xcode調試:調試

dy.png

經過這種方法,是否是就更方便了,直接對應用重簽名, 經過xcode瞭解應用佈局,層級關係。不再用擔憂他們又揹着咱們作了哪些「見不得人的事」了。code

《應用簽名-手動簽名》

相關文章
相關標籤/搜索