"iTunes Store에 연결할 수 없습니다"인앱 구매


98

인앱 구매를 테스트하는 데 문제가 있습니다. 유효한 제품 식별자를 되찾았지만 구매시 "iTunes Store에 연결할 수 없습니다"라는 두려운 메시지를 받았습니다. 흥미로운 점은 복원 구매가 작동하는 것처럼 보인다는 것입니다. iTunes 로그인이 나타납니다.

나는 :-내 인앱 구매가 판매를 위해 허가되었는지 확인-확인하고, Apple의 문서와 동기화되도록 내 소스 코드를 다시 확인했습니다.-적절한 테스트 사용자 추가-앱 ID에 와일드 카드가 포함되지 않음-인앱 구매가 앱 (앱 자체가 개발자 거부 상태에 있으며 구매를 제출할 준비가 됨)-대기 중-앱 재설치, 솔루션 정리, 모든 부두 관련 항목


26
"모든 부두 물건"에 +1-진실이 아닙니다!
— Craig Watkinson 2013

2
애플, 왜 이렇게 복잡해!
— Borzh

답변:


113

장비의 프로덕션 iTunes 계정에서 로그 아웃했는지 확인하십시오.

실제 iTunes 계정으로 로그인 한 테스트 전화에서이 오류가 발생했습니다. 프로덕션 iTunes 계정을 사용하여 앱을 테스트 할 수 없으므로 오류가 발생합니다. 이 추측을 피하기 위해 Apple이 더 나은 오류를 제공하기를 바랍니다.


1
내 오류는 단순히 Sandbox 사용자를 설정하지 않았기 때문에 해당 단계를 잊었습니다. 그리고 장치 b / c의 설정 >> iTunes 섹션에서 로그인하지 마십시오. 실제 테스트 중에 기다리십시오.
— 나단 프레 이더

(내 시나리오)를 사용하여 다른 앱에서 이전 IAP를 테스트 한 이전 샌드 박스 계정을 재사용 할 때도이 오류가 발생할 수 있습니다. 애플은 정말 나는 이메일을 밖으로 실행하는거야, 방식, 우리의 테스트 IAPS을 업데이트해야합니다 : 0
— 데이비드 바에즈

시뮬레이터에서 테스트 중이므로 여기에서 문제가되지 않을까요?
— Usama bin Attique

1
모든 iTunes 계정에서 로그 아웃했습니다. 로그인이 필요하다는 메시지가 표시되고 분할이 실패합니다. 많은 샌드 박스 테스터 계정을 사용했지만 작동하지 않습니다.
— bLacK hoLE

나를 위해 이것은 작동하지 않습니다 ... 많은 계정을 만들려고 시도했습니다. 일부는 로그인 한 iTunes 샌드 박스 사용자가 있고 다른 일부는 로그인 한 사용자가없는 경우, 이메일을 확인하지 않아도 작동하지 않습니다!
— Borzh


25

신규 사용자의 경우 인앱 구매 제품의 상태가 Ready to Submit'메타 데이터 누락' 이 없는지 확인하세요 . 제 경우에는 구독 그룹의 현지화가 누락되었습니다.

여기에 이미지 설명 입력


1
감사합니다! 제 경우에는 표시 이름에 대한 현지화가 누락되었습니다.
— Justin

내 IAP에 "Waiting for Upload"가 표시됩니다. 여전히 오류가 발생합니다
— Vaibhav Jhaveri

이것은 나에게도 효과적이었습니다. 내 활성 아이튠즈 계정도 로그인 했으므로 활성 계정은 나에게 중요하지 않았습니다
— cherucole

10

나는이 문제를 겪어 왔으며 버그라고 확신합니다. 버그 ID 10108270으로 버그 보고서를 제출했습니다.

문제는 테스트 사용자가 '잠김'상태이며 해당 계정으로 이미 출시 된 앱에서 인앱 구매를 시도하는 것과 관련이있을 수 있다는 것입니다.

내 해결 방법은 새로운 테스트 사용자를 만드는 것이었지만 Apple이 내게 연락 할 때까지 더 나은 솔루션을 제공 할 수 없습니다. 답장을 받으면이 답변을 업데이트하겠습니다.


4
새 테스트 사용자를 만들었지 만 도움이되지 않았습니다.
— arkir 2011 년

더 이상 도울 수 없어서 미안합니다. 그게 내 해결 방법이었습니다. 당신을 위해 작동하지 않는 것이 유감입니다. 더 많은 정보를 얻을 때이 답변을 계속 업데이트하겠습니다.
— James Webster

새 테스트 계정을 만들었고 인앱 구매가 다시 작동하기 시작했습니다. 감사!
— Miha Hribar 2011 년

새로운 테스트 사용자를 생성하면 문제가 해결되었습니다. (며칠 전에 이전 테스트 사용자를 사용하려고 할 때 비활성화되었다는 알림을 받았기 때문에 다시 활성화해야했습니다. 그 후 곧 Cannot connect to iTunes store오류가 발생 하기 시작했습니다 .하지만 새 테스트를 만들면 사용자, 구매가 다시 작동했습니다.)
— Andrew

새로운 사용자가 나를 위해 일했습니다. 다른 일을하기 전에 시도하십시오.
— Okhan Okbay

7

이 문제는 2016 년에도 지속됩니다. 놀랍습니다. 내 해결책은 다음과 같습니다.

빌드 번호를 추가하십시오. 대상> 일반> ID> 빌드.


2
믿을 수 없는. 이것은 2018 년에도 여전히 문제입니다. 프로덕션 릴리스에서만 증가하므로 디버그 모드에서 빌드 번호를 사용하지 않습니다. 게시 해 주셔서 감사합니다.
— Steven Peterson

3

이것은 내가 오늘 직면 한 문제와 관련된 오래된 스레드입니다.

제 경우에는 어제까지 기기에서 인앱 구매를 테스트 할 수 있었지만 오늘은 작동을 멈췄습니다. 애플이 내가 검토하고 동의하도록 '유료 애플리케이션에 대한 수정안'을 푸시 한 것으로 밝혀졌다. 수정안에 동의하면 (물론 읽지 않고) 모든 것이 다시 작동하기 시작했습니다. 새 테스트 사용자 나 다른 해결 방법을 만들 필요가 없습니다.

인앱 구매가 작동하지 않는 데는 여러 가지 이유가있을 수 있지만 올바르게 설정되어 있는지 확인 itunesconnect하지 않으면 인앱 구매를 테스트 할 수 없습니다.


2

나는 같은 문제를 겪고 있습니다. 저에게는이 보안 이후에 발생합니다.

  • iTunes에서 영국 계정으로 로그인 한 기기에 앱 설치
  • 앱을 실행하고 미국에서 설정 한 테스트 사용자를 사용합니다.
  • 계정이 미국에서만 유효하다는 메시지가 표시됩니다. 앱을 닫고 iTunes를 자동으로 실행합니다.
  • 앱을 다시 열고 구매를 다시 시도하십시오. 제품을 받았지만 다른 콜백이나 오류는 없습니다.

이것이 IAP 플랫폼에서 문제인지 여부는 모르겠지만 내 코드에서 어떤 방식 으로든 처리하기 위해 오류 / 콜백을 받고 싶습니다.

IAP 테스트를 계속하려면 다음 중 하나를 시도하십시오.

  1. 설정 영역에서 프로비저닝 프로파일을 제거하고 앱을 제거하고 설정의 스토어에서 로그 아웃합니다. 그런 다음 XCode로 이동하여 서명 ID를 "Do Not Sign"으로 변경 한 다음 다시 넣습니다 (어떻게 들리는 지 알고 있지만 시도).
  2. 기기의 모든 설정을 강제로 재설정합니다 (설정-> 일반 ...). 분명히 해당 장치의 모든 설정을 잃게됩니다.
  3. 장치 (멀티 태스킹 메뉴)에서 iTunes 앱을 종료하고 설정의 Store에서 로그 아웃합니다.

위의 어느 것도 작동하지 않으면 IAP 플랫폼에서 문제가 될 수 있습니다. 아래 내 의견을 참조하십시오.


감사합니다. 그러나 방법 1 또는 2 모두 저에게 효과적이었습니다. 여전히 iTunes에 연결할 수 없습니다. :(
— arkir 2011-09-13

사실, 나 자신을 시도했지만 나도 할 수 없습니다! 나는 이것이 플랫폼의 TODAY / RECENT 문제라고 느낍니다. 하지만 확인 링크 (상태)를 찾을 수 없습니다. 아아!. 나는 몇 시간 동안 그것을 떠나 그 사건과 DEVS 외부에 그것의 무언가 있는지 해요
— 후안 프란 네즈

장비 (멀티 태스킹 메뉴)에서 iTunes 앱을 종료하고 설정의 Store에서 로그 아웃하려고 했습니까?
— Juan Fran Jimenez 2011 년

Game Center (적어도 샌드 박스)가 지난 5 일 동안 불안정했음을 추가하겠습니다. 어젯밤에야 더 잘 작동하기 시작했습니다. 내 IAP 코드가 내 답변 이후 변경되지 않았고 이제 작동하기 때문에 언급하고 있습니다. 나는 Apple IAP 플랫폼에 오류가 있었고 어떻게 든 Game Center와 관련이 있다고 생각합니다.
— Juan Fran Jimenez 2011 년


1

(내 시나리오)를 사용하여 다른 앱에서 이전 IAP를 테스트 한 이전 샌드 박스 계정을 재사용 할 때도이 오류가 발생할 수 있습니다. Apple은 IAP를 테스트하는 방식을 업데이트해야합니다. 이메일이 부족합니다.


나도이 문제가 있었다. 때때로 새로운 사용자를 만드는 것이 도움이됩니다. 또한 실제 이메일을 사용할 필요가 없습니다. 나는 내 마지막에-##을 통해 새로운 것을 계속 추가합니다.
— 예레미야

1

아이폰에서 인앱을 구매할 수 있었지만 아이 패드 (11.0.2)에서는 구매할 수 없었습니다. 나는 언급 된 모든 솔루션을 시도했지만 도움이되지 않습니다. 다른 모든 가능성을 시도한 끝에 마침내 작동하게 만들 수있었습니다.

iTunes 연결에서 테스트 계정을 생성 할 때 이메일 ID를 확인하지 마십시오. 확인되면 iap에서 "iTunes에 연결할 수 없음"오류를 반환합니다. 이상하게 보이지만 나를 위해 일한 방법입니다. 아이폰에서는 이메일 확인 여부와 관계없이 테스트 계정으로 구매할 수 있습니다.


나는 이것을 읽었고 처음에는 미친 것처럼 들렸지 만 실제로 작동했습니다. 테스트 계정과 똑같은 문제가 iPad에서 구매할 수 없지만 iPhone에서 제대로 작동합니다. 아주 이상한!
— axanpi

예. 이것은 이상합니다. 이 문제로 인해 앱이 거부되었으며 이유를 애플 리뷰 팀에 설명하고 승인을 받았습니다.
— Anish

1

다음은 "iTunes Store에 연결할 수 없습니다"라는 오류가 발생한 경우 전체 점검 목록입니다.

  • App Store Connect에서 만든 sandbox 사용자가 있는지 확인하십시오.

  • 시뮬레이터는 인앱 구매를 지원하지 않습니다 : 실제 장치에서 테스트

  • 샌드 박스에 연결할 수 없습니다. Apple 시스템 상태 확인
  • 앱에 번들 버전 (CFBundleVersion)이 있는지 확인
  • 제품이 판매 가능한지 확인하십시오. App Store Connect에서 만들었습니까?

  • 이전 iOS 12 인 경우 기기의 프로덕션 iTunes 계정에서 로그 아웃했습니다. 그렇지 않으면 샌드 박스 계정으로 개발 앱 내에서 로그인 할 수 있습니다.


0

이 오류는 SKProductsRequest가 잘못된 NSSet을 전달할 때도 발생했습니다.

잘못된:

let products = NSSet(objects: ["id1", "id2"])

옳은:

let products = NSSet(objects: "id1", "id2")

0

제 경우 .failed에는 transactionState. 특히 SKPaymentQueueue.default().finishTransaction(transaction).


0

같은 문제가 발생했으며 Apple 양식을 포함한 문제를 확인했지만 해결책을 찾을 수 없었습니다.

오늘 장치를 확인했을 때 다음과 같은 것을 발견했습니다.

에서 장치 설정 -> 아이튠즈 및 앱 스토어는 또 다른 발견 애플 이드 에서 기록 . 그래서 로그 아웃을 시도하고 InApp 구매를 다시 확인했는데 완벽하게 작동했습니다. 따라서 문제가 동일한 지 확인하십시오.

감사합니다. Unnikrishnan.P


0

설정> iTunes 및 App Store로 이동 한 다음 하단으로 스크롤하여 "샌드 박스 계정"필드에서 로그 아웃해야했습니다. 이제 작동합니다 !!!

여기에 이미지 설명 입력


0

여기에 설명 된 다른 모든 방법 외에도 구독 작업을하는 경우 공유 암호를 생성했는지 확인해야합니다.

"자동 갱신 구독을 테스트하거나 제공하려면 마스터 공유 비밀이 있거나 각 앱에 대해 앱별 공유 비밀을 사용해야합니다."

마스터 공유 비밀은 App Store Connect의 '사용자 및 액세스'섹션의 '공유 비밀'탭에서 생성됩니다.

앱 자체의 인앱 구매를 관리하는 앱별 공유 비밀이 생성됩니다.


0

내가 고쳤어! Error Domain=SKErrorDomain Code=2 "Cannot connect to iTunes Store"오류 가 발생하면 SKPaymentQueue.default().finishTransaction(transaction). SKPaymentQueue.default().finishTransaction(trans)다음을 추가 한 후 저에게 효과적이었습니다 .

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for trans in transactions{
        if trans.transactionState == .purchased {
            print("Successful.")
            SKPaymentQueue.default().finishTransaction(trans)
        } else if trans.transactionState == .failed {
            print("failed!")
            print(trans.error)
            SKPaymentQueue.default().finishTransaction(trans)
        }
    }

Apple 개발자 웹 사이트에서 찾을 수 있습니다.

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