ios xcode 給ipa包簽名

xcode 給ipa簽名
xcode 項目設置Build Phases 新增個Run Script 把下面代碼貼上去。
然後在項目文件夾下面新建一個APP目錄,把目標ipa包拖進去。
運行就能裝到手機了!
如果安裝不了,Edit Scheme一下,改成debug模式;項目配置Configuration也改成Use debug。


ASSETS_PATH="${SRCROOT}/APP"

TEMP_PATH="${SRCROOT}/temp"

TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"


#刪除temp文件夾下的內容 然後新建
rm -rf "${SRCROOT}/temp"
mkdir -p "${SRCROOT}/temp"


#-----------------------------
#1.解壓ipa 到temp下
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"

#拿到解壓的臨時的app路徑
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
#echo "路徑是:$TEMP_APP_PATH"

#-----------------------------
#2. 將解壓出來的app拷貝到工程下
#BUILT_PRODUCTS_DIR 工程生成包的路徑
#TARGET_NAME
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
#echo "app路徑是:$TARGET_IPA_PATH"

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


#-----------------------------
#3. 刪除extension和watch
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/watch"

#-----------------------------
#4. 修改 info.plist

# 設置 "Set : KEY Value" "目標文件路徑"

#/usr/libexec
# CFBundleIdentifier
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"

#-----------------------------
#5. 給可執行文件上執行權限
#拿到macho 文件路徑
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#上權限
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
#echo "六六六:$FRAMEWORK";
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
echo "包的路徑:$FRAMEWORK"
if test -f  $FRAMEWORK
    then
    #簽名
    /usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
        
    fi
done
fi


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章