iOS 재 서명 절차 적용
2. ipa 가방 의 압축 을 풀 려 면 먼저 다시 서명 하 는 목 표 는 app 폴 더 입 니 다. ipa 가방 안에 있 습 니 다. 다시 서명 할 때 이. ipa 는 껍질 을 벗 긴 후에 해 야 합 니 다. 대응 하 는 셸 문 구 는
unzip
입 니 다.3. app 폴 더 에 있 는 PlungIns 폴 더 와 Watch 폴 더 를 삭제 합 니 다. 개인 인증서 로 서명 할 수 없 기 때 문 입 니 다.
4. FrameWorks 폴 더 에 있 는 모든 framework 파일 을 다시 서명 합 니 다. 다시 서명 하려 면 자신의 인증 서 를 사용 해 야 합 니 다. 열쇠 꾸러미 에서 받 을 수 있 습 니 다. xcode 에서 실 행 된 스 크 립 트 라면 환경 변수
$EXPANDED_CODE_SIGN_IDENTITY
로 받 을 수 있 습 니 다.5.. app 파일 에 있 는 info. plist 파일 을 변경 하고 bundleId 를 빈 항목 의 ID 로 설정 합 니 다. 이것 은 셸 스 크 립 트 를 사용 하면
PlistBuddy
으로 설정 할 수 있 습 니 다.6. app 폴 더 의 mach - o 파일 에 실행 권한 추가 (필요 하 다 면)
7. 이. app 파일 을 프로젝트 에서 생 성 된. app 패 키 지 를 교체 합 니 다 (xcode 컴 파일 후 필요)
8. 운행
위의 몇 단 계 는 스 크 립 트 로 이 루어 집 니 다. xcode 의 Build Phase 에 컴 파일 된 스 크 립 트 를 추가 하면 2 - 7 단 계 를 실행 할 수 있 습 니 다. 순 서 는 변 할 수 있 습 니 다. 예 를 들 어 다음 과 같 습 니 다 (이 예 는 Hank 의 스 크 립 트 입 니 다).
# ${SRCROOT}
TEMP_PATH="${SRCROOT}/Temp"
# , APP , ipa
ASSETS_PATH="${SRCROOT}/APP"
# ipa
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"
# Temp
rm -rf "${SRCROOT}/Temp"
mkdir -p "${SRCROOT}/Temp"
#----------------------------------------
# 2. IPA Temp
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"
# APP
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
#----------------------------------------
# 7. .app
# BUILT_PRODUCTS_DIR APP
# TARGET_NAME target
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH"
#----------------------------------------
# 3. extension WatchAPP. Extention
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"
#----------------------------------------
# 5. info.plist CFBundleIdentifier
# :"Set : KEY Value" " "
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"
#----------------------------------------
# 6. MachO
# MachO
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\
이 코드 를 실행 가능 한 파일 로 저장 할 수 있 습 니 다. 그러면 Build Phase 에서 이 스 크 립 트 를 실행 하면 됩 니 다.
이 스 크 립 트 는 다시 서명 한 후 자동 으로 프로그램 을 실행 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.