[apple] 유료 개발자 인증서없이 탈옥 된 장치에서 Xcode 프로젝트를 컴파일하고 실행할 수 있습니까?
발 차기 및 예산상의 이유로 일반적으로 개발자 계정이 필요한 패키지를 가져와 탈옥 된 iOS 기기에서 실행되는 앱을 만들고 싶습니다.
iOS 6.1을 실행하는 evasi0n을 사용하여 탈옥 된 5 세대 iPod Touch가 있습니다.
OS X (10.8.2) Lion에서 Xcode 4.6을 사용하고 있습니다.
답변
이 목적을 달성하기위한 다음과 같은 교육 단계는 http://iphonedevwiki.net/index.php/Xcode 에서 가져옵니다.
나의 발견과 행동은 각 단계에서 제공됩니다.
1. 키 체인 접근을 사용하여“로그인”(기본) 키 체인에“iPhone Developer”라는 이름으로 자체 서명 된 코드 서명 인증서를 만듭니다.
- 위의 지시에 따라 스크린 샷을 찍었습니다.
- 대부분의 필드를 비워 두거나 기본값으로 두었습니다.
2. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
(4.2 이하 :)를 엽니 다 /Developer/Platforms/iPhoneOS.platform/Info.plist
. 루트 권한이 필요할 수 있습니다.
- Xcode 4.6을 사용하고 있으므로 이전
.plist
파일을 열었습니다 .
의 모든 항목을 XCiPhoneOSCodeSignContext
로 바꿉니다 XCCodeSignContext
. 그중 세 가지가 있습니다 (XCode 버전 3.2.4+).
- 스크린 샷에서 알 수 있듯이 세 가지 수정했습니다.
4. 파일을 저장하고 Xcode를 다시 시작하십시오.
- 파일을 저장했습니다.
5. Mac에 ldid가 있는지 확인하십시오. 예를 들어에 어딘가에 사본을 배치하십시오 /usr/local/bin
.
- http://code.google.com/p/networkpx/downloads/detail?name=ldid 에서 ldid를 다운로드했습니다 .
- 나는 그것을 넣었다
/usr/local/bin
.
6. ldid 프로그램 바로 옆에 Python 스크립트 ldid3.py를 작성하십시오. 실행 가능하게 만드십시오. 그것을 채우십시오 :
#!/usr/bin/env python
from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile
app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])
if '-gta' not in argv:
check_call([ldid_path, '-S', obj_path])
else:
with NamedTemporaryFile('w+b', 0) as f:
f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
""")
check_call([ldid_path, '-S' + f.name, obj_path])
- 새 일반 텍스트 파일을 만들고 위 코드를 복사하여 붙여 넣었습니다.
- 이 파일을 다른 이름으로
ldid3.py
저장하고/usr/local/bin
디렉토리에 저장했습니다 . - 터미널에서 실행했습니다
chmod 777 /usr/local/bin/ldid3.py
.
7.를 엽니 다 iPhoneCodeSign.xcspec
. 이 파일은 [For Xcode 4.6 : /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
] 에서 찾을 수 있습니다 :
8. 변경 호출에서 파일의 항목 codesign
에 ldid3.py
.
- 지침 공식 지침에 따라 콘솔에 입력하여 사양 파일을 일반 텍스트로 변환하십시오.
sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
- TextEdit으로 파일을 열었습니다.
- 로 대체
<key>CommandLine</key><string>/usr/bin/codesign</string>
되었습니다<key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
.
9. 파일을 저장하고 Xcode를 다시 시작하십시오.
- 파일을 저장하고 TextEdit을 종료했습니다.
10. /var/mobile/tdmtanf
장치에 파일 을 생성하여 설치시 Apple의 “TDMTANF 바이 패스”를 활성화합니다 (경고 : 샌드 박스 된 GameCenter에 저장 됨).
- Windows에서 빈 텍스트 파일을 생성하고 이름이
tdmtanf
이고 SSH로 iPod에 업로드 한 다음에 업로드 한 다음/var/mobile/
iPod을 재부팅합니다.
이제 모든 것이 끝났습니다 …
기존 Xcode 프로젝트를 열고 실행을 누르십시오. iOS 시뮬레이터에서 아무런 문제없이 작동합니다.
1 단계에서 설정 한 인증서를 사용하도록 코드 서명이 설정되어 있는지 확인하십시오.
앱을 빌드합니다 (프로젝트> 빌드). 성공 메시지가 이어집니다.
내 응용 프로그램 폴더 TicTacToe.app
를 가져 와서 /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
Windows 컴퓨터로 전송하여 iPod에 설치합니다.
응용 프로그램을 iPod에 설치하려고 할 TicTacToe.app
때 iPhone 구성 유틸리티의 응용 프로그램 섹션으로 드래그 했지만, 내 응용 프로그램이 “유효한 모바일 응용 프로그램이 아닙니다”라는 오류 메시지가 나타납니다.
또한 iFunbox 와 Cydia에 있는 AppCake 앱을 사용하여 수동으로 앱을 설치하려고 시도했습니다 . 둘 다 실패합니다.
내가 관심을 갖는 점으로, 나는 구글 검색을 할 때 많은 사람들이 이것의 중요성을 언급하는 것을 보았습니다. 나는 AppSync를 설치했습니다. (큰 스크린 샷에 대해 죄송합니다. 삭제해야하는 경우 알려주세요!)
결론
따라서 지침을 여러 번 밀접하게 따르더라도 iPhone 구성 유틸리티에서 내 앱을 유효한 앱으로 인식하지 못합니다. iFunbox와 같은 프로그램 또는 AppCake와 같은 Cydia 앱을 사용하여 앱을 수동으로 설치할 수 없습니다.
앱이 실제로 유효하지 않다고 생각하지만 지침을주의 깊게 따라 간 이유는 확실하지 않습니다.
누구나 내 앱이 유효하지 않은 이유와 돈을 기침하는 것 외에도이를 해결하기 위해 무엇을 할 수 있는지 말해 줄 수 있습니까?
답변
기기를 연결하고 iOS 기기를 실행 대상으로 선택할 수 있습니다. 실행되면 응용 프로그램이 장치에 자동으로 설치됩니다. 또는 iOS 기기를 선택할 수 있으며 빌드 및 보관을 실행할 필요가 없습니다. 그런 다음 배포 … 엔터프라이즈 용 저장 또는 특별 배포를 선택합니다. .ipa 파일이 제공됩니다. 그것이 당신을 도울 수 있기를 바랍니다 ..
답변
@joncom의 답변을 계속하십시오. 몇 단계 만 거치면 .app 파일을 iPhone에 직접 추가 할 수 있습니다.
.app
파일을 바탕 화면에 복사 한 다음 압축하십시오- 이름
[yourappname].zip
을[yourappname].ipa
- cydia에서 AppSync를 다운로드하십시오.
- .ipa 파일을 다운로드하여 장치에 설치
노트:
@joncom이 언급 한 모든 파이썬 코드 수정을 거치지 않고 직접이 작업을 수행 할 수도 있습니다.