لا يمكنك تحميل التطبيق الثنائي إلى متجر التطبيقات

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

  •  24-09-2019
  •  | 
  •  

سؤال

لقد وصلنا أخيرًا إلى نقطة إرسال تطبيق iPhone الأول إلى متجر التطبيقات (أو محاولة) ، لكن لا يبدو لي أن أتصل بـ iTunes لقبول التحميل.

لقد حاولت من خلال كل من موقع الويب ("كان التحميل الثنائي الذي تم تحميله غير صالح. كان التوقيع غير صالح ، أو لم يتم توقيعه مع شهادة تقديم Apple.") وعملية التطبيق ("info.plist لا تحتوي على cfbundleresourcepecification ").

بعد الكثير من القراءة (بما في ذلك أسئلة مثل هذه) ، وإعادة القراءة ، و googling ، أستطيع أن أقول:

  • أنا متأكد من أن معرف الحزمة يطابق AppId.
  • يوجد icon.png ، إنه ملف PNG 57x57 px ، وهذا هو الاسم الدقيق في info.plist.
  • أقوم بعمل جهاز ، وليس محاكاة ، بناء.
  • تنجح عملية التوقيع: تظهر نتائج الإنشاء هذا ، وتشغيلها codesign -vvvv MyApp.app لا يشير إلى أي مشاكل.
  • لا توجد أحرف غريبة في المسار إلى ملف zip.
  • لقد قمت بحذف مجلد Build وأعيد بناء الثنائي عدة مرات.

الآن ، صحيح أنه في التطبيق المبني ، لا يحتوي info.plist CFBundleResourceSpecification مفتاح ، لكن ليس من الواضح على الإطلاق بالنسبة لي من أين يجب أن تأتي هذه القيمة ، أو ماذا أحتاج إلى إضافته لجعل هذا العمل. (المرجع الوحيد الذي يمكنني العثور عليه باستخدام بحث Apple هو بعض ملاحظات إصدار توقيع الرمز... ولكن ، كما ذكرت أعلاه ، تنجح خطوة توقيع الكود ، بقدر ما أستطيع أن أقول.)

هل خاض أي شخص أي تفسيرات لهذه المشكلة لم أذكرها بالفعل؟

تعديل: فيما يلي الإخراج (المنقلب قليلاً) من خطوة توقيع الكود للبناء ، FWIW:

رمز توقيع لقطة شاشة

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

المحلول

يبدو أن المشكلة هي أنني كنت أستخدمها JSON-Framework في تطبيقي ، بما في ذلك SDK إضافية لكل التعليمات الواردة في الويكي. أظن أن Xcode تم الخلط بينه من خلال وجود> 1 SDK ، وبالتالي لم يتمكن من العثور على فرص الموارد الافتراضية.

لقد وجدت حلين (حسنًا ، حلول ، على أي حال):

  1. استخدم إعداد "مسار قواعد الموارد لتوقيع الرمز" (وهو فارغ بشكل افتراضي) لتحديد المسار إلى ملف XCode يجب استخدامه: $(SDKROOT)/ResourceRules.plist. هذا يعمل ، و يبدو غير ضار بشكل معقول ، ولكنه محبط بمعنى أن Xcode يجب أن يكون قادرًا على معرفة ذلك بمفرده. (لقد وجدت هذا الحل في قضية قديمة جدا قدم على JSON-Framework.)
  2. لا تستخدم نهج SDK. بدلاً من ذلك ، فقط قم بتضمين الملفات مباشرة في المشروع ، وتحديث #import بيانات مع المسارات المحلية. هذا هو النهج الذي انتهى بهم الأمر ، لأننا اتخذنا قرارًا عامًا بطي جميع التبعيات الخارجية في المشروع نفسه (بحيث يكون لدى المطورين الآخرين تكوين أقل للقيام به على أجهزتهم للاستعداد والتشغيل).

لست متأكدًا مما إذا كان هذا خطأ في Xcode ، أو أي شيء خاطئ في JSON-Framework ولكنني قدم قضية على الأخير فقط في حالة.

تحديث ، 30 يونيو 2010: تم إغلاق المشكلة التي قدمتها ، ويخطط السيد Brautaset لإزالة الدعم لخيار SDK في الإصدار التالي (2.3) للمشروع. أيضا ، الكود يعيش الآن على جيثب, ، على الرغم من أن صفحات رمز Google لا تزال موجودة في الوقت الحالي.

نصائح أخرى

بالنسبة لي ، بعد التحقق من كل الأشياء (Codesign ، ملف الأيقونة ...) ولكن لا يمكنك تحميل تطبيقك ، حاول حذف الملف المبني. تذكر نسخ file.app لضغط التطبيق الخاص بك.

هل أنت متأكد من أنك تبني مع توزيع ، بدلاً من التنمية والشهادة و mobileprovision؟

أفترض أنك تقوم بتحميل ملف .zip.

لقد راجعت للتو تطبيقًا قمت بتحميله ، و cfbundleresourcespecification هو فقط في الإصدارات الموقعة (أي بناء الجهاز).

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

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

يمكن أن تحدث هذه الرسالة لسبب آخر (كما اكتشفت للتو هذا الصباح): إذا كان لدى مشروعك معلومات متعددة.

كان هذا يحدث لي لأن جزءًا آليًا من البناء كان إنشاء معلومات.

نصيحة قبعة هنا للحل:http://infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcepecification/

بالنسبة لي كان الحل هو إنشاء شهادة توزيع على:بوابة توفير مطور Apple.

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