Xcode에서 실제 iPhone 장비로 iPhone 응용 프로그램을 어떻게 배포 할 수 있습니까?


157

99 달러의 Apple 인증서없이 Xcode에서 실제 iPhone 장비로 iPhone 응용 프로그램을 어떻게 배포 할 수 있습니까?


필자가 탈옥 한 iPhone에 넣는 방법에 대한 아주 좋은 가이드를 위해 이전에 요청한 질문에 대한 답변 을 참조하십시오 .
Dan Walker


2
Xcode 7은 이제 무료 프로비저닝을 제공하므로 실제 장치에서 앱을 테스트하기 위해 Apple 개발자 계정에 가입 할 필요가 없습니다. 자세한 내용은 이 답변 을 참조하십시오.
Suragch

답변:


56

응용 프로그램이 서명되지 않은 것 같습니다. Cydia에서 ldid를 다운로드 한 후 다음과 같이 사용하십시오.ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

바이너리가 실행 파일로 표시되어 있는지 확인하십시오. chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph


3
예,이 방법을 사용하려면 기기를 탈옥해야합니다.
esqew

ldid -S ... 명령을 어떻게 실행합니까? 이를 위해 SSH 콘솔이 필요합니까? 탈옥 된 iPhone에서 SSH 클라이언트를 얻는 무료 방법이 있습니까?
Dan Leahu

tanderson : Cydia에 ldid 패키지가 있으며 OS X 용으로 컴파일 할 수 있습니다
rpetrich

rpetrich 나는 그의 질문이 팩을 얻는 방법이 아니라 명령을 입력하고 사용하는 방법이라고 믿습니다. @ tanderson 당신은 Open SSH (데스크톱에서 전화에 연결) 또는 iPhone 자체 의 터미널을 통해 갈 수 있습니다 . 두 앱 모두 Cydia 에서 무료로 다운로드 할 수 있습니다 . SSH를 사용하면 SSH를 사용하여 앱을 전화기에 간단히 복사 할 수도 있습니다. 이 작업을 많이 수행하면 다른 답변을 확인하십시오 .XCode가 모든 작업을 수행하도록 할 수는 있지만 그렇게하는 데 번거로운 절차입니다.
cregox

92

Jasonalex의 두 가지 방법을 혼합하여 사용했습니다 . 두 번째는 디버깅 할 수 있다는 이점이 있습니다. 나는 주로 아래 두 가지를 모두 복사 할 것입니다 (그리고 alex를 단순화하십시오).

2012 년 1 월 업데이트 : 여전히 SDK 4.2.1 및 iOS 5.0.1에서 작동합니다. 새 컴퓨터와 장치에서 모두 테스트했습니다.


1. 자체 서명 인증서 작성

이 인증서를 사용할 수 있도록 iPhone SDK를 패치하십시오.

  1. Keychain Access.app를 시작하십시오. 항목을 선택하지 않고 키 체인 메뉴에서 인증 지원을 선택한 다음 인증 작성을 선택하십시오.

    • 이름 : iPhone 개발자
    • 인증 유형 : 코드 서명
    • 기본값을 무시하겠습니다 :
  2. 계속을 클릭하십시오

    • 유효 기간 : 3650 일
  3. 계속을 클릭하십시오

  4. 밖으로 빈 이메일 주소 필드.

  5. 완료 될 때까지 계속을 클릭하십시오 .

    "이 루트 인증서를 신뢰할 수 없습니다" 가 표시되어야합니다 . 이것은 예상됩니다.

  6. 자체 서명 인증서를 사용할 수 있도록 iPhone SDK를 설정하십시오.

    sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist

    Xcode가 열려 있으면 다시 시작하여이 변경 사항을 적용하십시오.

그리고 iOS 5를 사용하고 있다면 그게 전부입니다! 지금 사용해보십시오! 디버깅을 허용하지 않을 수 있지만 앱이 있습니다!

당신이 알고 있듯이 모든 해킹이 무엇인지 전혀 알지 못했기 때문에 이것에 매우 놀랐습니다 ! 내가 한 것은 내가 지적한 것처럼 다른 곳에서 찾은 것을 조금 개선하는 것이 었습니다.

예, 전체 방법 이 더 이상 같은 방식으로 작동하지 않아서 새로운 방법을 찾을 필요가 없었습니다. 단 , Theos라는 도구를 사용 하지만 전체 프로세스를 수행 할 수는 없었습니다.

마지막으로 어떤 이유로 든 제거 해야하는 경우이 게시물의 끝을 확인하십시오. 필자의 경우,이 모든 방법이 왜 파란색으로 작동하지 않는지 알 수 없었기 때문에 기다려야했으며 이미 오래 기다린 라이센스를 얻었으므로 더 이상 신경 쓰지 못했습니다. (DUNS 번호가 너무 오래 걸리면 ...)

.

.


.

.

.

2. Xcode가 Jailbroken 장치에서 빌드되도록 설정

  1. 탈옥 된 iPhone에서 소스를 추가 하여 App AppSync 를 설치하십시오. ** http://repo.hackyouriphone.org **

  2. 코드 서명 및 인 타이틀먼트에 대한 SDK 요구 사항을 제거하십시오 ( sed love sed !) :

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
  3. iPhoneOS5.0.sdk부품에 주의 하십시오. 예를 들어 iOS 4.2 SDK를 사용하는 경우 적절하게 교체하십시오.

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
  4. Xcode 패치를 통한 요구 사항 제거를 마칩니다. 이것은 이진 편집을 의미합니다.

    cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
    dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
    printf "\xc3\x26\x00\x00" >> working
    /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
    /bin/mv working iPhoneOS\ Build\ System\ Support
    chmod a+x iPhoneOS\ Build\ System\ Support
    

    Xcode가 열려있는 경우이 변경 사항 (및 마지막 변경 사항)을 적용하려면 Xcode를 다시 시작하십시오.

  5. 메뉴에서 "프로젝트> 프로젝트 설정 편집"을 엽니 다 . "빌드" 탭을 클릭 하십시오. 목록에서 "Code Signing Identity" 와 해당 하위 "Any iPhoneOS Device" 를 찾아 "Do n't Code Sign" 항목으로 설정하십시오 .

    대체 텍스트

    이 후 3 단계를 취소 할 수 있습니다. 적어도 제 경우에는 문제가 없었습니다.

  6. 맞춤형 자체 서명 인증서 (첫 번째 방법) 로 코드 서명하도록 Xcode 설정 디버깅을 원하지 않으면이 단계를 건너 뛸 수 있습니다.

    mkdir /Developer/iphoneentitlements401
    cd /Developer/iphoneentitlements401
    curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
    mv gen_entitlements.txt gen_entitlements.py
    chmod 777 gen_entitlements.py
    

    iPhone을 연결하고 Xcode를 엽니 다. 창> 주최자를 엽니 다. 왼쪽의 목록에서 장치를 선택하고 "개발에 사용"을 클릭하십시오. 프로비저닝 웹 사이트 로그인을 요청하는 메시지가 표시되면 취소를 클릭하십시오. 합법적 인 프로비저닝을보다 쉽게 ​​수행 할 수 있지만 불법적 인 프로비저닝을 더 어렵게 만들지는 않습니다.

    이제 모든 새 프로젝트에 대해이 마지막 부분을 수행해야합니다 . 프로젝트> 새 빌드 단계> 새 실행 스크립트 빌드 단계 메뉴로 이동하십시오. 창에서 이것을 복사 / 붙여 넣기하십시오 :

    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
    codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
    fi
    

.

.


.

.

제거

첫 번째 부분 :

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist

두 번째 부분 :

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support

2 대신 3 단계를 수행 한 경우 그에 따라 간단히 수정하십시오.

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist

나머지는 XCode에서 수행 한 작업을 되돌리고 /Developer/iphoneentitlements401/gen_entitlements.py원하는 경우 삭제 하는 것입니다.

sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py

이 지침을 따르려고했지만 이제 'Scheme'은 My Mac 64 비트 유형이며 더 이상 시뮬레이터 또는 실제 iPhone을 실행할 수있는 옵션이 없으므로 코드를 테스트 할 수도 없습니다. 나는 SDK 4.3을 사용했다하지 않도록 경우 그 문제
nosatalian

1
실제로 업데이트 : 프로젝트 설정의 기본 SDK를 iphoneos에서 iOS 4.3으로 변경하면 작동합니다. xcode에 '원격 프로그램 시작 오류 : 프로세스 작업을 수행하지 못했습니다'라고 표시되어 있지만 클릭하면 앱을 시작할 수 있습니다.
nosatalian

1
이 오류가 발생합니다. The identity used to sign the executable is no longer valid. ... (0xE8008018) 3650 일이 지나도 만료됩니다. 전화 자체가 점검을하고있는 것 같습니다.
Stephen

이 "패칭 XCode"트릭은 4.3.2에서 작동합니까? 아니면 제동 할 것입니다
Gabor

1
포인트 6. 제 경우에는 일반 사용자가 실행할 수 있도록 /Developer/iphoneentitlements401/gen_entitlements.py 파일 권한을 변경해야했습니다. 이것으로 절차가 완벽하게 작동합니다.
abidibo

43

Xcode 7 이후 무료 프로비저닝

Apple Developer 요금을 지불하지 않고 실제 기기에서 앱을 테스트하거나 기기를 탈옥하려면 Xcode 7 및 iOS 9가 지원하는 새로운 무료 프로비저닝을 사용할 수 있습니다.

다음은 문서 에서 다소간 수행 된 단계 입니다 (꽤 좋습니다, 읽어보십시오).

1. Xcode에서 Apple ID 추가

XCode> 환경 설정> 계정 탭> 추가 버튼 (+)> Apple ID 추가로 이동하십시오. 자세한 내용 은 문서 를 참조하십시오 .

여기에 이미지 설명을 입력하십시오

2. 프로젝트 네비게이터에서 일반 탭을 클릭하십시오

여기에 이미지 설명을 입력하십시오

3. 팀 팝업 메뉴에서 Apple ID를 선택하십시오.

여기에 이미지 설명을 입력하십시오

4. 장치를 연결하고 구성표 메뉴에서 장치를 선택하십시오.

여기에 이미지 설명을 입력하십시오

5. 수정 문제 버튼을 클릭하십시오

여기에 이미지 설명을 입력하십시오

번들 이름이 유효하지 않다는 오류가 발생하면 고유 한 이름으로 변경하십시오.

6. 앱 실행

Xcode에서 빌드 및 실행 단추를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

7. 장치 설정에서 앱 개발자를 신뢰

앱을 실행 한 후 실행하려는 앱이 App Store에 없기 때문에 보안 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

장치 , 설정> 일반> 정보로 이동> 당신의 애플-ID-이름 > 신뢰 당신의 애플-ID-이름 > 신뢰.

8. 장치에서 앱을 다시 실행하십시오.

그게 다야. 이제 99 달러를 지불하지 않고도 자신의 소스 (또는 소스 코드가있는 다른 앱)를 실행할 수 있습니다. 마침내 이것을 허용 해 주셔서 감사합니다.


1
고마워 이것은 유료 Apple 개발자 라이센스없이 완벽하게 작동했습니다.
kishorer747

하지만 한 번에 최대 3 개의 앱만 설치할 수 있으며 매주 인증서를 갱신해야합니다.
SilverWolf-복원 모니카

@seaturtle, 업데이트 주셔서 감사합니다. 나는 결국 개발자 라이센스를 위해 돈을 버렸 으므로이 답변을 최신 상태로 유지하지 못했습니다. 그것은 한계에 대해 너무 나쁘다. 안드로이드보다 애플보다 훨씬 좋은 것들이 있습니다.
Suragch

9

공식 SDK로 빌드 한 애플리케이션에 대해 이야기하고 xcode에서 직접 배포하는 경우에는 불가능합니다.


8

기기를 탈옥해야합니다.


1
@rpetrich의 방법을 따르고 실행 파일을 장치의 / Applications 폴더에 SSH로 넣으십시오. 재부팅 / 다시 부팅 후에 작동합니다.
esqew


5

내가 본 것 중 어느 것도 인증서 (유료)없이 실제 iPhone에 임시 배포 할 수 있음을 나타냅니다.


4

나는 지난 밤에 Apple Developer를 겪고 있었고 프로비저닝 인증서에 "Signing Team Members"와 같은 것을 발견했다. 유료 프로필에 팀원을 추가하는 방법이 있다고 생각합니다. 앱 ID 소유자 (유료)에게 팀 구성원으로 추가하도록 요청할 수 있습니다. 확실하지 않습니다. 아직도 검색 중입니다.


예, 팀원을 추가 할 수 있습니다. 연간 200 개의 장치 제한이 있습니다.
cregox

Cawas-애플 아이디에 회원을 추가하는 방법을 알고 있습니까?
Akshay

이름 앞에 @를 추가하면 알림이 표시됩니다. 스스로 말했듯이 먼저 지불 계정을 가져와야합니다. 그런 다음 어떻게 해야하는지에 대한 자습서를 찾을 수 없기 때문에 정말 간단해야합니다. 나는 결코 그것을 직접하지 않았다.
cregox

3

아니요, 쉽게 할 수 있습니다. Xcode에서 활성 구성을 릴리스로 설정하십시오. SDK에서 장치를 시뮬레이터에서 장치로 변경하십시오. iPhone으로 직접 내보내려면 컴퓨터에 연결하십시오. Build and Go를 누릅니다. iPhone이 컴퓨터에 연결되어 있지 않으면 iPhone이 연결되어 있지 않다는 메시지가 나타납니다.

귀하에게 해당되는 경우 : (iPhone이 연결되지 않았습니다)

프로젝트 폴더로 이동 한 다음 빌드 폴더로 이동하십시오. Release-iphoneos 폴더로 이동하여 앱을 내부로 가져간 다음 iTunes 아이콘을 끌어다 놓습니다. iTouch 장비를 동기화하면 장비로 복사됩니다. 또한 iTunes에서 iPhone 용 응용 프로그램으로 표시됩니다.

도움이 되었기를 바랍니다!

추신 : 인증서가 유효하지 않다는 메시지가 표시되면 파일 스택의 작은 프로젝트 아이콘 인 Xcode에서 프로젝트를 클릭하고 Apple + I을 누르거나 메뉴 표시 줄에서 정보 입수를하십시오. 상단에서 빌드를 클릭하십시오. 코드 서명에서 코드 서명 ID-서명하지 않는 모든 iPhone OS 장비를 변경하십시오.


7
OP에는 서명 인증서 또는 프로비저닝 프로파일이 없습니다. 이 지침은 $ 99 iPhone 개발자 프로그램 인 경우 회원을위한 것이지만 프로그램에 가입하지 않고 장비에서 실행하는 방법에 대한 질문은 다루지 않습니다.
cdespinosa

2

이것은 프로비저닝 프로파일없이 iPhone에 배포하기 위해 다른 버전을 사용하기 때문에 사용하는 Xcode 버전에 따라 다릅니다.

Xcode 3.2.1은 좋은 버전이며 쉽게 정렬 할 수 있지만 사용중인 버전을 알아야합니다.


2

Cawas가 게시 한 솔루션도 XCode4와 완벽하게 작동합니다. 그러나 IDE UI에 일부 변경 사항이 있으므로 Run Script를 찾으려면 약간의 조사가 필요합니다. :)

프로젝트 네비게이터보기에서 프로젝트의 루트 항목을 클릭 한 다음 중간 창에서 대상을 선택한 후 빌드 단계 탭을 클릭하십시오. 맨 아래에 빌드 단계 추가 단추가 표시되고 실행 스크립트 추가를 클릭 한 후 "codesign"을 붙여 넣으십시오. "스크립트는 Cawas에 의해 게시되었습니다.


1

해결 방법이 없습니다. 장치에 등록 된 경우에만 임시 배포 앱을 사용할 수 있습니다. 이렇게하면 자신의 앱 스토어를 구축 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.