source

Xcode에서 실제 아이폰 장치로 아이폰 애플리케이션을 배포하려면 어떻게 해야 합니까?

ittop 2023. 5. 7. 11:51
반응형

Xcode에서 실제 아이폰 장치로 아이폰 애플리케이션을 배포하려면 어떻게 해야 합니까?

US$99 애플 인증서 없이 어떻게 Xcode에서 실제 아이폰 장치로 아이폰 애플리케이션을 배포할 수 있습니까?

제이슨과 알렉스의 두 가지 방법을 혼합해서 사용했습니다.두 번째는 디버깅이 가능하다는 장점이 있습니다.아래 두 가지를 모두 복사합니다(알렉스의 경우 단순화).

2012년 1월 업데이트:이것은 여전히 SDK 4.2.1과 iOS 5.0.1에서 작동합니다 - 저는 방금 새로운 컴퓨터와 장치에서 모든 것을 테스트했습니다!


자체 서명된 인증서 생성

이 인증서를 사용할 수 있도록 iPhone SDK를 패치합니다.

  1. Keychain Access.app을 실행합니다.항목을 선택하지 않은 상태에서 키 체인 메뉴에서 인증서 길잡이를 선택한 다음 인증서 만들기를 선택합니다.

    • 이름: 아이폰 개발자
    • 인증서 유형: 코드 서명
    • 기본값을 재정의합니다. 네.
  2. 계속을 클릭

    • 유효성: 3650일
  3. 계속을 클릭

  4. 전자 메일 주소 필드를 비웁니다.

  5. 완료될 때까지 계속을 클릭합니다.

    "이 루트 인증서를 신뢰할 수 없습니다"를 확인해야 합니다.이것은 예상된 것입니다.

  6. 자체 서명된 인증서를 사용할 수 있도록 iPhone SDK를 설정합니다.

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

    Xcode가 열려 있는 경우 Xcode를 다시 시작하여 이 변경사항을 적용합니다.

그리고 iOS 5를 사용하고 있다면 그걸로 끝입니다!지금 해보세요!디버깅을 허용하지 않을 수도 있지만 앱이 있을 것입니다!

저는 이것에 매우 놀랐습니다. 왜냐하면, 아시다시피, 저는 그 모든 해킹이 무엇에 관한 것인지 전혀 모르기 때문입니다!제가 한 일은 제가 지적한 것처럼 다른 곳에서 발견한 것을 조금 개선하는 것뿐이었습니다.

그래서 네, 모든 방법이 더 이상 같은 방식으로 작동하지 않습니다. 그리고 저는 새로운 방법을 찾을 수 없었습니다.테오스라는 도구를 사용하는 이것을 제외하고는 저는 모든 과정을 거칠 수 없었습니다.

마지막으로, 어떤 이유로든 제거해야 하는 경우 이 게시물의 끝을 확인하십시오.저의 경우, 왜 갑자기 이 모든 방법이 작동하지 않는지 알 수 없었기 때문에 그렇게 해야 했고, 이미 오래 기다린 라이센스가 있기 때문에 더 이상 신경 쓸 수 없었습니다. (DUNS 번호를 깨우는 데 너무 오래 걸립니다...)

.

.


.

.

.

Xcode가 Jailbroken Device에 구축되도록 설정

  1. 탈옥한 아이폰에 소스 ** http://repo.hackyouriphone.org **를 추가하여 AppSync 앱을 설치합니다.

  2. 코드 서명 및 자격에 대한 SDK 요구 사항을 제거합니다(I'm 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 iPhone OS Device"를 찾은 다음 둘 다 "Don't Code Sign" 항목으로 설정합니다.

    alt 텍스트

    이 후 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를 엽니다.창을 엽니다.>조직자.왼쪽 목록에서 장치를 선택하고 "개발에 사용"을 클릭합니다.프로비저닝 웹 사이트 로그인을 묻는 메시지가 표시됩니다. [취소]를 클릭하십시오.이 기능은 합법적인 프로비저닝을 더 쉽게 하기 위한 것이지만, 불법적인 비프로비저닝을 더 어렵게 만들지는 않습니다.

    이제 여러분은 여러분이 만드는 모든 새로운 프로젝트에 대해마지막 부분을 것입니다.Project > New Build Phase > New Run Script Build Phase 메뉴로 이동합니다.창에서 복사/붙여넣기:

    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

신청서에 서명이 되어 있지 않은 것처럼 들립니다.과 같이 합니다. Cydia 서 ldid 다운로한후같사이용다니합과음다를드에▁download다니사서합.ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

이진 파일이 파일로 되어 있는지 하십시오.chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph

Xcode 7 이후 무료 프로비저닝

Apple Developer 수수료(또는 장치 탈옥)를 지불하는 대신 실제 장치에서 앱을 테스트하기 위해 Xcode 7 및 iOS 9가 지원하는 새로운 무료 프로비저닝을 사용할 수 있습니다.

다음은 설명서에서 어느 정도 수행한 단계입니다(이는 상당히 좋으므로 읽어보십시오).

Xcode로 Apple ID 추가

XCode > Preferences > Accounts 탭 > Add 버튼(+) > Add Apple ID로 이동합니다.자세한 내용은 문서를 참조하십시오.

여기에 이미지 설명 입력

프로젝트 탐색기에서 일반 탭 클릭

여기에 이미지 설명 입력

팀 팝업 메뉴에서 Apple ID를 선택합니다.

여기에 이미지 설명 입력

장치를 연결하고 구성 메뉴에서 선택합니다.

여기에 이미지 설명 입력

문제 수정 버튼을 클릭합니다.

여기에 이미지 설명 입력

번들 이름이 올바르지 않다는 오류가 발생하면 고유한 이름으로 변경합니다.

앱 실행

Xcode에서 Build and run 버튼을 클릭합니다.

여기에 이미지 설명 입력

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

앱을 실행한 후 실행하려는 앱이 앱스토어가 아니기 때문에 보안 오류가 발생합니다.

여기에 이미지 설명 입력

단말기에서 Settings > General > Profile > your-Apple-ID-name > Trust your-Apple-ID-name > Trust로 이동합니다.

단말기에서 앱을 다시 실행합니다.

바로 그겁니다.이제 99달러를 지불하지 않고도 자신만의(또는 소스 코드가 있는 다른 앱을) 실행할 수 있습니다.마침내 이것을 허락해주신 애플사에 감사드립니다.

공식 SDK로 빌드되고 xcode에서 직접 배포하는 애플리케이션을 말하는 경우에는 불가능합니다.

당신은 당신의 장치를 탈옥해야 할 것입니다.

애플에 돈을 지불하지 않고 아이폰 앱을 배포하는 방법이 있습니다. 당신은 당신의 장치를 깨고 http://www.alexwhittemore.com/ ?p=398의 지침을 따라야 합니다.

제가 본 어떤 곳에서도 인증서 없이 실제 iPhone에 임시로 배포할 수 있다는 것을 보여주는 것은 없습니다.

아니요, 쉽게 할 수 있어요.Xcode에서 활성 구성을 릴리스로 설정합니다.장치를 시뮬레이터에서 장치로 변경합니다. SDK와 상관없이.iPhone으로 직접 내보내려면 컴퓨터에 연결합니다.빌드 및 이동을 누릅니다.iPhone이 컴퓨터에 연결되어 있지 않으면 iPhone이 연결되어 있지 않다는 메시지가 나타납니다.

해당되는 경우: (iPhone이 연결되어 있지 않음)

프로젝트 폴더로 이동한 다음 내부의 빌드 폴더로 이동합니다.Release-iphoneos 폴더로 이동하여 앱을 내부로 가져가서 iTunes 아이콘을 드래그 앤 드롭합니다.iTouch 장치를 동기화하면 장치에 복사됩니다.그것은 또한 아이폰용 애플리케이션으로 아이튠즈에 나타날 것입니다.

이것이 도움이 되길 바랍니다!

추신: 인증서가 유효하지 않다는 내용이 있으면 Xcode의 프로젝트, 파일 스택의 왼쪽에 있는 작은 프로젝트 아이콘을 클릭하고 Apple+I를 누르거나 메뉴 모음에서 Get Info를 수행합니다.맨 위에 있는 빌드를 클릭합니다.코드 서명에서 코드 서명 ID - 모든 iPhone OS 장치를 서명하지 않음으로 변경합니다.

어젯밤 Apple Developer를 살펴보던 중 Provisioning Certificate에서 "Signing Team Members"와 같은 것을 발견했습니다.유료 프로필에 팀원을 추가할 수 있는 방법이 있다고 생각합니다.앱 ID 소유자(유료)에게 팀 구성원으로 추가해 달라고 요청하면 됩니다.잘 모르겠어요.아직 찾고 있는 중입니다.

이 모든 것은 여러 버전이 프로비저닝 프로파일 없이 아이폰에 배포하기 위해 다른 방법을 사용하기 때문에 사용 중인 Xcode 버전에 따라 달라집니다.

Xcode 3.2.1은 좋은 버전이고 분류하기 쉽지만, 우리는 당신이 어떤 버전을 사용하고 있는지 알아야 합니다.

Cawas가 게시한 솔루션은 XCode4에서도 완벽하게 작동합니다.다만 IDE의 UI에 약간의 변경이 있어 Run Script를 찾기 위해서는 조사가 필요합니다 :)

Project Navigator 뷰에서 프로젝트의 루트 항목을 클릭한 다음 중앙 창에서 Target을 선택하고 Build Phase 탭을 클릭하면 하단에 Add Build Phase 버튼이 표시되고 Add Run Script를 클릭하여 선택한 다음 Cawas에서 게시한 "codecign" 스크립트를 붙여넣습니다.

해결 방법이 없습니다.앱이 장치에 등록되어 있는 경우에만 임시 배포할 수 있습니다.이것은 당신이 당신 자신의 앱 스토어를 구축하는 것을 막습니다.

언급URL : https://stackoverflow.com/questions/246422/how-can-i-deploy-an-iphone-application-from-xcode-to-a-real-iphone-device

반응형