재서명하기 전에 몇 가지 준비를 하세요.
1. 먼저 codesign_allocate 프로그램이 포함된 Xcode를 다운로드하여 설치합니다. 설치하면 /usr/bin에 ipa 패키지에 서명하기 위한 추가 코드사인 프로그램이 있습니다.
2. 엔터프라이즈 인증서에 대한 인증서 파일, 개인 키 파일 및 프로비저닝 구성 파일. 엔터프라이즈 인증서는 iOS 개발용이 아닌 iOS 배포용이어야 합니다.
재서명 단계
1. 페이로드/[앱 이름]에 대한 ipa의 압축을 풉니다. 번들을 압축 해제하고 번들을 엽니다.
2. 이전 ipa 서명 정보 삭제
번들에서 _CodeSignature 폴더를 삭제합니다(즉, 이전 ipa 서명 정보를 삭제합니다).
3. 인증서 교체
번들에서 이전 프로필을 삭제하고 자체 엔터프라이즈 인증서의 프로필로 교체합니다.
IPA 패키지의 엔터프라이즈 인증서 이름을 embedded.mobileprovision.
4. 번들 내용 수정
이 시점에서 동적 라이브러리 추가, 이미지 제거 등 원하는 대로 번들 내용을 수정할 수 있습니다.
주: 번들에 동적 라이브러리를 추가하려면 먼저 zip 파일로 압축한 다음 프로그램을 시작할 때 Documents 디렉터리에 압축을 푼 다음 열어야 하며, 그렇지 않으면 프로그램 시작 시 동적 라이브러리 파일이 멈춰 버립니다.
재서명
패키지의 내용을 수정한 후에는 /usr/bin/codesign 프로그램을 통해 다시 서명해야 합니다. 명령은 다음과 같습니다.
/usr/bin/code sign-f-s " iPhone 배포:회사 이름"-resource-rules Payload/MYAPP.app/ResourceRules.plist. Payload/MYAPP . 앱
다음과 같이 회사 인증서의 이름인 키체인 액세스에서 iPhone 배포를 얻을 수 있는 경우 "iPhone 배포:XXXXXXXXXXX":
특정 명령 예:< /p>
codesign-f-s " iPhone Developer:xxxxxxxxxxxxxx"-resource-rules Payload/NdCP _ Game _ demo . 앱/리소스 규칙 . plist Payload/NdCP _ Game _ demo . app
이 명령의 의미는: 키체인에서 "iPhone Developer:xxxxxxxxxxxxxx"로 식별된 인증서를 사용하고, Payload/NdCP _ Game _ demo . app/resource의 규칙을 따르라는 것입니다. 규칙 . plist에 서명이 이미 존재하는 경우 서명이 대체되며, 이 프로세스로 생성된 _CodeSignature 디렉터리는 Payload/NdCP _ Game _ demo . 앱에 저장됩니다.
명령이 실행되면 번들 내에 새 서명 정보가 포함된 새 _CodeSignature 디렉터리가 생성됩니다.
ipa로 재패키징
위 작업이 완료되면 새 ipa를 생성하여 게시할 수 있습니다.
예제 명령은 다음과 같습니다.
zip -r retest . ipa payload
#페이로드 뒤에 "/"를 붙일 수 없습니다.
Release
패키지 릴리스 테스트 후, 탈옥하지 않은 디바이스와 탈옥한 디바이스 모두에 재서명된 ipa 파일을 성공적으로 설치할 수 있다는 결론을 내렸습니다. PP Assistant와 같은 타사 도구가 아닌 SSL 인증서가 있는 웹사이트와 Apple 시스템(내부 배포 프로그램)을 통해 설치되었다는 점에 유의하세요.