خطأ في التصميم: لا يمكن العثور على ملف تعريف التوفير بعد حذف ملف التعريف منتهية الصلاحية

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

سؤال

حاول إعادة بناء تطبيق كان يعمل بالأمس فقط. تلقيت رسالة مفادها أن ملف تعريف قد انتهى ، لذلك قمت بإزالته من iPod ومن iTunes. عندما اخترت ملف تعريف جديد (واحد مع * في المعرف) ، أحصل الآن على خطأ:

خطأ علامة الرمز: لا يمكن العثور على ملف تعريف التوفير (سلسلة طويلة).

ماذا ينقصني؟ نظرت من خلال الأسئلة ذات الصلة ولم أر هذا السيناريو بالفعل.

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

المحلول

في بعض الأحيان ، يتم إفساد ملف مشروع XCode الخاص بك ، خاصةً إذا كان لديك مشروع قديم وقام بإنشائه أولاً مع إصدار أقدم من XCode/iPhone SDK. ما عليك القيام به هو فتح ملف المشروع في محرر نصوص ، والبحث عن "السلسلة الطويلة" من خطأك ومحو هذا الخط يدويًا. في الواقع ، يجب عليك المضي قدمًا ومحو أي خط يشير إلى أي ملفات تعريف توفير. ثم أعد فتح المشروع في Xcode ، وانتقل إلى الإعدادات وإعادة تحديد ملفك الشخصي الجديد. هذا يزيل قضايا كهذه معظم الوقت. ستبدو الخطوط التي تشير إلى ملفات تعريف التوفير هكذا:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

نصائح أخرى

إليك حل أبسط يعمل بالنسبة لي والذي لا يتطلب التحرير اليدوي لملف المشروع:

في XCode ، في جزء "المجموعات والملفات" ، قم بتوسيع "أهداف" وانقر نقرًا مزدوجًا على هدف التطبيق الخاص بك. هذا يعرض جزء المعلومات للهدف. في قسم "Build" ، تحقق من قسم "توقيع الكود" لأي ملفات تعريف قديمة واستبدلها بالقسم الصحيح.

لاحظ أن هذا يختلف عن النقر المزدوج على أيقونة مشروعك وتغيير الملف الشخصي من هناك. مذهل جدا :)

أوري

  1. خصائص المشروع والأهداف -> "لا تتوقيع رمز" -> موافق -> cmd+s (أو cmd+b) ؛
  2. خصائص المشروع والأهداف -> "ملف تعريف التوفير الخاص بك" -> موافق

  3. كل شيء يعمل مرة أخرى!

أتفق مع إجابة براد ، على أنه يمكنك حل هذه المشكلة عن طريق تحرير الهدف/المشروع باليد ، وحذف أي خطوط مثل هذا:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

ومع ذلك ، في Xcode 4.2 وبعد ذلك ، هناك طريقة أسهل بكثير للوصول إلى هذا النص وتحديد وحذفه. في مشروع Navigator على اليسار ، حدد مشروعك (أعلى سطر المشروع Navigator). الآن ببساطة اختر عرض> محرر الإصدار> إظهار محرر الإصدار. يعرض هذا مشروعك كنص ، ويمكنك البحث عن توفير وحذف الخط المزعج ، هناك مباشرة في جزء محرر XCode.

لقد رأيت للتو تباينًا في هذه المشكلة: لقد ذهبت إلى Project.pbxproj ملفًا وفقًا لملاحظات براد سميث أعلاه ، إلا في هذه الحالة ، بدا أن جميع خطوط التوفير ( تجد.

ومع ذلك ، كان الإصلاح هو نفسه: حذف جميع خطوط التوفير في project.pbxproj ، على الرغم من أنها تبدو "جيدة" من الناحية النظرية ، ثم إعادة فتح المشروع في Xcode.

لتحقيق حل براد بالكامل في المحطة ، استخدم هذه الأوامر

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - حذف الخط بأكمله
  5. اضغط على N حتى لا يتم العثور على المزيد
  6. Ctrl+X للحفظ والإغلاق

في حالتي ، تم حل المشكلة عن طريق فتح النافذة -> منظم ، وتحديد جهازي وإزالة ملف تعريف التزويد القديم ضمن لوحة "توفير" على اليمين. تم تمييز الرمز القديم بالفعل برمز "X" الأحمر ولكن كان iPhone لا يزال يستخدمه.

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

قضيت ساعة أو نحو ذلك في القيام بذلك وبمساعدة نصيحة براد وبعض التغييرات الإضافية التي نجحت كلها.

لقد قمت بذلك باستخدام ما يلي: 10.7.3 ، xcode 4.3.2 ، iOS 5.1 BTW.

1) انقر بزر الماوس الأيمن على myapp.xcodeproj وحدد محتويات الحزمة

2) فتح project.pbxproj مع محرر نصية (لا تنصح بالرسائل النصية لأنها قد ترفع التنسيق)

3) قم بالتمرير على طول الطريق حتى تجد /* Begin XCBuildConfiguration section */

4) لاحظ أن لديك أقسام تصحيح وإصدار

5) في قسم الإصدار ألق نظرة على CODE_SIGN_IDENTITY & "CODE_SIGN_IDENTITY[sdk=iphoneos*]" يجب أن تبدو مثل هذا:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) ألق نظرة على PROVISIONING_PROFILE و "PROVISIONING_PROFILE[sdk=iphoneos*]" يجب أن تبدو هكذا:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

هذا يجب أن يتطابق مع ملف تعريف التزويد الخاص بك في XCode. لمعرفة ما إذا كانت تتطابق مع Open Xcode> Window> منظم> أجهزة> توفير ملفات تعريف> انقر بزر الماوس الأيمن على الملف الشخصي> الكشف في Finder> اسم ملف .mobileprovision هو معرف ملف التعريف الخاص بك.

7) التمرير لأسفل في project.pbxproj وابحث عن مثيل ثانٍ لقسم الإصدار. يجب أن ينتهي المثيل الثاني لقسم الإصدار بتعليق يقول /* End XCBuildConfiguration section */

8) تأكد من أن القسم الثاني يطابق القسم الأول بحيث CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*], ، و PROVISIONING_PROFILE جميعها ممتلئة.

أحد الاقتراحات التي سأقدمها منذ أن لم يقلها أحد بعد: من فضلك يرجى تقديم نسخة احتياطية من ملف .xcodeproj بالكامل قبل البدء في تعديل محتوياته. إن شد ملف المشروع وعدم وجود نسخة احتياطية سيؤدي إلى تجربة غير سارة للغاية.

يمكن أن تكون القدرة على العودة من التحرير بمثابة هبة من الله.

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

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

هذا إصلاحه ويمكنني من الأرشفة بشكل طبيعي. امل ان يساعد.

حدد الخطوط الموجودة في Codesigning فارغة تحت أي iOS SDK وحدد الشهادة الصحيحة.

كان حل براد سميث يعمل من أجلي ، لكنني اضطررت أيضًا إلى إزالة حقل code_sign_identity لجعله يعمل.

لسوء الحظ ، لم ينجح هذا النهج بالنسبة لي. ولكن إليك حلًا يعمل بالنسبة لي (للحصول على هذا العمل ، تحتاج إلى ملف مشروع عمل على Subversion أو نحو ذلك):

لقد تراجعت إلى نسخة عمل من ملف المشروع الخاص بي. لأنه لا يمكن العودة مع Xcode (أين هو خيار "العودة" في التحكم في مصدر XCode 4؟) - استخدمت السلحفاة ، جهاز Windows الخاص بي وهذا البرنامج التعليمي (http://tortoisesvn.net/docs/nightly/tortoisesvn_en/tsvn-howto-rollback.html) للعودة إلى ملف مشروع أقدم.

نظرًا لأن البرنامج التعليمي لم ينجح بالنسبة لي ، فقد استخدمت فقط السلحفاة لحفظ المراجعة العاملة لملف المشروع الخاص بي إلى عصا USB لمنفذها إلى جهاز Mac الخاص بي. بعد ذلك استبدلت ملف المشروع المكسور الجديد بسلاح العمل القديم ، تم تنظيفه وعمل مثل سحر!

كنت أواجه مشكلات لأنني قمت بتحديث ملف تعريف توفير adhoc الخاص بي مع بعض الأجهزة الجديدة لاستخدامها على TestFlight. من المفترض أن هذا يحدث لأن Xcode لديه إشارة قديمة إلى ملف تعريف التوفير الخاص بك إما في إعدادات إنشاء الترميز للمشروع أو الأهداف. كانت الطريقة التي أصلحت بها لي:

  1. انتقل إلى كل من إعدادات الإنشاء المستهدفة وإعدادات بناء المشروع ، ضمن توقيع الكود ، قم بتغيير جميع ملفات تعريف التوفير إلى شيء آخر.
  2. انتقل إلى أجهزة/توفير ملفات تعريف التزويد في المنظم ، قم بحذف ملفات التعريف المخالفة ، ثم انقر فوق زر التحديث في أسفل اليمين.
  3. ارجع إلى إعدادات بناء الهدف و Project وقم بتعيين ملفات تعريف التوفير الخاصة بك على ملفات تعريف التوفير المناسبة حديثًا (نأمل).

على الأقل في Xcode 5 ، هذا هو الشيء الذي حل المشكلة بالنسبة لي:

ضمن ملف تعريف التوفير ، حدد ملف تعريف التوفير المخالف ، ثم حدد ملف تعريف توفير صالح في القائمة المنسدلة.

enter image description here

يمكنك إزالة المرجع القديم لملف التوفير. ثم بعد استيراد ملف تعريف توفير جديد واختيار Xcode Builder.

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