2009-10-27 2 views
4

iPhone에서 App App Purchases를 테스트하고 정보를 요청한 제품 ID가 "didRecieveResponse"항목에 잘못된 제품 ID로 반환 된 문제로 실행하려고합니다. 방법.잘못된 제품 ID 오류를 반환하는 iPhone Store Kit

나는이 :

  • 이 응용 프로그램과 관련된 상점에서 제품을 만들었습니다. 번들 ID는 다른 모든 것과 일치합니다. 판매를 위해 승인되었으며 개발자가 승인했습니다.
  • 내 프로비저닝 프로파일에 상점 앱 구매가 활성화되어 있고 앱 이름이 "com.domain.appname"
  • 입니다. 내 iPhone에 앱을 서명하는 데 사용되는 프로비저닝 프로파일인지 확인하십시오.
  • "com.domain.appname"이 프로비저닝 프로파일을 빌드하는 데 사용 된 응용 프로그램 ID인지 확인하십시오.
  • "com.domain.appname"이 내 plist 파일에서 번들 식별자로 사용되었는지 확인하십시오.

모든 것이 제자리에있는 것처럼 보이지만 내 제품은 계속 잘못된 ID로 반환됩니다.


- (void)requestProductData { 
    SKProductRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject: @"com.domain.appname.productid"]]; 
    request.delegate = self; 
    [request start]; 
} 

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
{ 
    NSArray *myProducts = response.products; 
    NSArray *myInvalidProducts = response.invalidProductIdentifiers; 

    for(int i = 1; i < myInvalidProducts.count; ++i) 
    { 
     std::cout <<"invalid product id = " << [[myInvalidProducts objectAtIndex:i] UTF8String] << std::endl; 
    } 

    for(int i = 0; i < myProducts.count; ++i) 
    { 
     SKProduct * myProduct = [myProducts objectAtIndex:i]; 
     std::cout << "Product Info:" << std::endl; 
     std::cout << "\tlocalizedTitle   = " << [[myProduct localizedTitle] UTF8String] << std::endl; 
     std::cout << "\tlocalizedDescription = " << [[myProduct localizedDescription] UTF8String] << std::endl; 
     std::cout << "\tproductIdentifier  = " << [[myProduct productIdentifier] UTF8String] << std::endl; 
     std::cout << "\tprice     = " << [[myProduct price] doubleValue] << std::endl; 
     std::cout << "\tpriceLocale   = " << [myProduct priceLocale] << std::endl; 
    } 

    [request autorelease]; 
} 

내 모든 제품 ID가 유효하지 않은 출력물에 표시하고 그들 중 누구도이에 표시되지 "제품 정보"출력물을

내가 사용하고있는 코드입니다.

모든 제안은 크게 평가 될 것입니다 ...

P.S. 예, Objective-c/C++로 작성되었습니다. 모든 일을 한 후 나는 아마도 생각하고 거기에 모든 포럼을 읽을 수 있도록

+0

아마도 바보 같은 질문 이었지만 실제로 iTunes Connect로 이동하여 쿼리중인 인앱 구매 제품을 추가 했습니까? –

+0

전혀 바보 같은 질문이 아닙니다. 인앱 구매를 추가했습니다. ID를 확인했는데 모두 일치 해. 판매를 위해 허가되고 개발자가 확인했습니다. – EToreo

+0

이것은 아마 그 중 하나가 아니지만 "initWithProductIdentifiers"대신 "initWithProductIndentifiers"를 호출하는 예제 코드에서 나타났습니다 .... –

답변

0

확인, 여기 일 것입니다 :

다시 실행 EVERYHING.

  1. Xcode 구성 도우미에서 모든 프로비저닝 프로파일을 제거하십시오.
  2. Xcode를 닫습니다.
  3. 새 응용 프로그램 ID를 만듭니다.
  4. 새 응용 프로그램 ID로 새 프로비저닝 프로필을 만듭니다.
  5. 새 응용 프로그램 ID로 새 배포 프로비저닝 프로파일을 만듭니다.
  6. iTunes Connect에서 새 응용 프로그램 만들기
  7. 두 개의 새 프로비저닝 프로파일을 설치하십시오. 일치시킬 yoru 번들 ID를 업데이트하십시오. 또한 앱이 요청한 ID 문자열이 번들 ID를 반영하도록 업데이트되었는지 확인하십시오.
  8. 새 배포 프로비저닝 프로파일을 사용하여 배포 모드에서 프로젝트를 빌드하십시오.
  9. 새 이진 파일을 업로드하십시오. (거부하지 말고 그대로 두십시오)
  10. 테스트 인앱 구매를 설정하십시오.
  11. 새 프로비저닝 프로파일로 디버그 모드로 프로젝트를 빌드하십시오.
  12. 테스트 요청.

이것은 내 상점을 작동시키는 데 필요한 것입니다. 내 생각 엔 애플 백 엔드 서버가 가끔 망쳐 버리고 처음부터 다시 시작할 필요가있다.

희망이 있으면 모두 도움이됩니다.

+1

이전과 같은 이름으로 새 앱을 만들 수 있었습니까? – psychotik

6

애플 포럼과 여기에 제안 된 모든 것을 시도했지만 여전히 작동하지 못했습니다. 솔루션을 찾았습니다 - 샌드 박스를 활성화하려면 Xcode에서 앱을 전송해야합니다.

분명히? 기존 계정에 대한 업데이트로 작업하는 경우 장치는 App Store에 설치된 응용 프로그램으로 처리합니다.

삭제 한 다음 다시 전송하십시오. 이제 작동해야합니다 :)

+1

잘못된 제품 식별자가 나옵니다. Xcode로 앱을 전송하면 무슨 뜻인지 물어볼 수 있습니까? 실제로 어떻게해야합니까? 미리 감사드립니다. – bobo

+1

네, 저도 그렇게 생각합니다. –

+1

@bobo 그는 시뮬레이터가 아닌 Xcode 내에서 기기에서 앱을 실행하는 것을 의미합니다. @Hector - 감사합니다, 당신은 나에게 모든 종류의 좌절감을 저장했습니다! – jakev

1

저는 앱 구매시 추가하려고했던 새로운 앱 (아직 출시되지 않은 v1.0)과 비슷한 문제를 겪고 있습니다. SKProductsRequest를했을 때 모든 것을 설정하고 제품을 추가했는데 항상 내 제품이 무효로 돌아 왔습니다.

나는 애플 개발자 포럼에 접선으로 관련된 포스트를 보았을 때 전과정을 포기했다. 테스트 장치에서 앱을 삭제하고 새로운 빌드 + 설치를 제안했습니다. 그것은 트릭을했다.

그냥 똑같은 문제를 일으키는 다른 장치에서 시도해 보았습니다.

그냥 짐작 하겠지만 기기에 IAP를 추가하기 전에 만들어진 프로비저닝 프로파일로 만들어진 빌드가있는 경우 해당 빌드를 제거하고 새 빌드를 사용해야합니다. IAP 프로파일. (즉 단순히 트릭을하지 않을 장소에 응용 프로그램을 대체합니다.)

1

코드에서 아무 문제, 언젠가는 들어, 10 시간 이상 시간이 필요할 수 있습니다 이유만으로 무효 productId에 을 반환이없는 경우 정보 변경. 복용. 또는 기기에 잘못된 것이 남아 있기 때문에 상품 ID가 잘못되었습니다. 앱을 삭제하고 다시 빌드하면 다시 시도 할 수 있습니다. 내 경험으로 , 도움이 되길 바랍니다.

4

테스트 용 iPhone에서 앱을 삭제하고 다시 설치하면 효과적입니다. 또한 인앱 구매 항목을 제출 한 후 8 시간을 기다렸습니다.

+0

문제가 발생할 경우 나를 위해 일했습니다. – monkeydom

+0

이 문제가 다시 발생했습니다. IAP를 아직 또 다른 앱에 구현할 때마다 거의 비슷한 것처럼 보입니다. 응용 프로그램을 삭제하고 Xcode에서 다시 정리하고 다시 설치하면 문제가 해결되었습니다. 나는 이것이 이전 시간에도 그것을 고정 믿습니다. – Jonny

3

다음 단계로 이동하십시오 :

  1. 로그인 아이튠즈에서 개발자 계정 (https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/)를 사용하여 연결합니다. 탭에

  2. 이동 - "계약, 세금 및 은행"

  3. 확인 요청 계약 및 프로세스 섹션 계약.

  4. "iOS Paid Applications"을 확인하십시오. 연락처 정보, 은행 정보 및 세금 정보가 필요합니다.

  5. "iOS Paid Applications"셀이 Contracts in Effect 섹션으로 이동하면 In App Purchase에서 제품을 사용할 수 있습니다.

자세한 내용은 아래 링크를 통해 이동하십시오 : http://developer.apple.com/library/ios/#technotes/tn2259/_index.html

2

이 앱 구매가에-완전히 테스트 아이폰이 AppSync 패킷을 탈옥 할 때하는 나누기 있습니다. AppSync는 Install0us와 함께 종속성으로 설치됩니다.

iOS를 완전히 복원 할 필요가 없습니다. Cydia에서 AppSync를 제거하여 성공한 인앱 구매를 테스트하면 성공이입니다.

AppSync를 제거 할 때까지 fixind 'invalid product'에 대한 모든 포럼, 자습서 및 의견의 모든 팁이 저에게 효과가 없었습니다.

0

IAP 용 iTunes Connect 인터페이스가 최근에 업데이트되어 Invalid : < Product ID> 오류가 발생할 수 있습니다.

기본값으로 USD 0이 아닌 가격을 설정하지 않고 iTunes 연결에서 IAP를 추가 할 수 있습니다. 그러면 해당 항목을 저장할 수 있습니다.

가격 필드를 미리 편집하지 않은 경우 저장을 누르면 이전 버전의 UI가 불편을 겪습니다.

이 입력란을 완전히 놓치기 쉽고 iOS 통화를 통해 해당 제품 ID를 사용하여 정보를 얻으려는 시도는 < 제품 ID>라고 말하면서 < 제품 ID> 0

관련 문제