"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.