اي فون متجر عدة عودته صالح معرف المنتج الأخطاء

StackOverflow https://stackoverflow.com/questions/1633072

سؤال

أنا أحاول اختبار في شراء التطبيق على اي فون بلدي و الوقوع في مشكلة حيث المنتج معرفات أرجو من المعلومات في نهاية المطاف يجري عاد لي أنها غير صالحة المنتج معرفات في "didRecieveResponse" الأسلوب.

لدي:

  • إنشاء حساب في متجر المنتجات المرتبطة بها مع هذا التطبيق.انها حزمة معرف مباريات كل شيء آخر.تم مسح للبيع والموافقة عليها من قبل المطور.
  • حرصت الجديد التزويد الشخصي في متجر التطبيق مشتريات تمكين ولها كامل اسم التطبيق:"com.المجال.appname"
  • جعل متأكد من أن هذا هو التوفير الشخصية المستخدمة لتوقيع التطبيق على اي فون بلدي.
  • على يقين من أن "com.المجال.appname" هو معرف التطبيق المستخدمة في بناء المخصصات الشخصي.
  • على يقين من أن "com.المجال.appname" يستخدم في plist كما معرف حزمة.

يبدو أن كل شيء في مكانه, ولكن أنا لا يزال الحصول على المنتجات بلدي عاد لي أنها غير صالحة معرفات.

هذا هو رمز أنا باستخدام:


- (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];
}

كل معرفات المنتج تظهر في غير صالح المطبوعات و لا أحد منهم تظهر في "معلومات المنتج:" المطبوعات.

أي اقتراحات موضع تقدير كبير...

P. S.نعم ، هذا كما بنيت الهدف-c/c++.

هل كانت مفيدة؟

المحلول 7

حسنًا، بعد القيام بكل ما يمكن أن أفكر فيه وقراءة كل منتدى هناك، إليك ما نجح:

إعادة كل شيء.

  1. قم بإزالة جميع ملفات تعريف التوفير الخاصة بك من Xcode Organizer.
  2. إغلاق اكس كود.
  3. قم بإنشاء معرف تطبيق جديد.
  4. قم بإنشاء ملف تعريف توفير جديد باستخدام معرف التطبيق الجديد.
  5. قم بإنشاء ملف تعريف جديد لتوفير التوزيع باستخدام معرف التطبيق الجديد.
  6. قم بإنشاء تطبيق جديد في iTunes Connect
  7. ابدأ تشغيل Xcode، وقم بتثبيت ملفي تعريف التوفير الجديدين.قم بتحديث معرف الحزمة الخاص بك للمطابقة.تأكد أيضًا من تحديث سلاسل المعرفات التي يطلبها التطبيق لتعكس معرف الحزمة الخاصة بك.
  8. أنشئ مشروعك في وضع التوزيع باستخدام ملف تعريف توفير التوزيع الجديد.
  9. تحميل الثنائي الجديد الخاص بك.(اتركه غير مرفوض)
  10. قم بإعداد عملية الشراء التجريبية داخل التطبيق.
  11. أنشئ مشروعك في وضع التصحيح باستخدام ملف تعريف التزويد الجديد.
  12. طلب الاختبار.

هذا هو ما يتطلبه الأمر لتشغيل متجري.أفضل تخميني هو أن خوادم Apple الخلفية تتعطل أحيانًا وتحتاج فقط إلى البدء من الصفر.

آمل أن يساعد هذا الجميع!

نصائح أخرى

لقد جربت كل ما تم اقتراحه في منتديات Apple وهنا، وما زلت غير قادر على تشغيله.وجدت الحل - يجب نقل تطبيقك بواسطة Xcode حتى يتم تمكين وضع الحماية.

واضح، أليس كذلك؟حسنًا، إذا كنت تعمل على تحديث لحساب موجود، فسيظل الجهاز يعامله كتطبيق مثبت على متجر التطبيقات.

احذفه، ثم انقله مرة أخرى.يجب أن تعمل الآن :)

نجح حذف التطبيق على جهاز iPhone الذي تم اختباره وإعادة تثبيته.لقد انتظرت أيضًا 8 ساعات منذ إرسال عنصر الشراء داخل التطبيق.

يرجى اتباع الخطوات أدناه:

  1. قم بتسجيل الدخول إلى iTunes Connect باستخدام حساب المطور الخاص بك (https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/).

  2. انتقل إلى علامة التبويب - "العقود والضرائب والبنوك"

  3. تحقق من أقسام طلب العقود والعقود قيد المعالجة.

  4. تفحص ال "تطبيقات iOS المدفوعة" وهناك حاجة إلى إعداد معلومات الاتصال والمعلومات المصرفية والمعلومات الضريبية.

  5. عندما تنتقل خلية "تطبيقات iOS المدفوعة" إلى قسم العقود قيد التنفيذ، سأكون قادرًا على استخدام المنتجات في شراء التطبيقات.

يرجى الدخول على الرابط أدناه لمزيد من المعلومات:http://developer.apple.com/library/ios/#technotes/tn2259/_index.html

يرجى ملاحظة أنه عندما يتم كسر حماية iPhone أبسينك فواصل الحزمة اختبار الشراء داخل التطبيق بالكامل.تم تثبيت AppSync مع Install0us باعتباره تبعية.

ليس عليك استعادة نظام iOS بالكامل، ما عليك سوى إلغاء تثبيت AppSync في Cydia لاختبار عمليات الشراء داخل التطبيق بنجاح.

جميع النصائح من جميع المنتديات والبرامج التعليمية والتعليقات حول إصلاح "المنتج غير الصالح" لم تنجح معي حتى قمت بإزالة AppSync.

لقد واجهت مشكلة مماثلة مع تطبيق جديد (الإصدار 1.0 لم يتم إصداره بعد في المتجر) والذي كنت أحاول إضافته في عمليات شراء التطبيق أيضًا.لقد قمت بإعداد كل شيء وإضافة المنتجات وما إلى ذلك.وكانت منتجاتي دائمًا غير صالحة عندما قمت بإجراء طلب SKProductsRequest.

كنت على وشك التخلي عن العملية برمتها، عندما رأيت منشورًا ذا صلة بشكل عرضي في منتديات مطوري Apple.واقترح حذف التطبيق من جهاز الاختبار وإجراء عملية إنشاء + تثبيت جديدة.لقد فعلت هذه الحيلة.

وللتأكيد، قمت بتجربته على جهاز آخر كان يسبب لي نفس المشكلة، وتم إصلاحه هناك أيضًا.

إنه مجرد تخمين، ولكن أعتقد أنه إذا كان الجهاز يحتوي على إصدار تم إنشاؤه باستخدام ملف تعريف التوفير الذي تم إنشاؤه قبل إضافة IAP، فستحتاج إلى إزالة هذا الإصدار ووضع إصدار جديد باستخدام ملف تعريف IAP.(أي أن مجرد استبدال التطبيق في مكانه لن يفي بالغرض.)

إذا كان أي شيء خطأ في التعليمات البرمجية الخاصة بك ، في وقت ما وقد عودة صالح productId فقط لأنك قد تحتاج إلى وقت أكثر من 10 ساعة من أجل تغيير المعلومات.أخذ تأثير.أو productId غير صالحة بسبب خطأ ما هي ظلت على جهازك, لذلك يمكنك أن تجرب مرة أخرى مع حذف التطبيق الخاص بك وبناء عليه مرة أخرى.مع تجربتي ، ونأمل أن يساعد.

تم تحديث واجهة iTunes Connect لـ IAP مؤخرًا مما قد يتسبب في حدوث خطأ:< معرف المنتج > خطأ.

يمكنك الآن إضافة IAP في iTunes Connect دون تحديد السعر الافتراضي وهو 0 دولار أمريكي وسيسمح لك بحفظ هذا الإدخال.

سيشكو الإصدار القديم من واجهة المستخدم عند الضغط على "حفظ" إذا لم تقم بتحرير حقل السعر مسبقًا.

من السهل جدًا تفويت هذا الحقل تمامًا وأي محاولة للحصول على معلومات باستخدام معرف المنتج هذا عبر أي اتصال iOS ستؤدي إلى خطأ:< معرف المنتج > بدلاً من إخبارك أنه وجد < معرف المنتج > بسعر 0 دولار أمريكي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top