سؤال

يظهر لي هذا الخطأ عندما أحاول إنشاء جهاز:

Code Sign error: The identity 'iPhone Distribution' doesn't match any identity in any profile

أنا أكون:

  • البناء من أجل التنمية وليس الإطلاق.
  • بناء ل3.1.2
  • تشغيل SDK 3.1.2

أملك:

  • تم إلغاء وإعادة إصدار شهادة صالحة
  • قمت بإنشاء معرف Ap جديد وملف تعريف توفير مرتبط جديد باسم تطبيق صريح (com.mycompany.appname) ومطابقة معرف الحزمة الخاص بي به (com.mycompany.appname).
  • قمت بتحديد ملف تعريف التوفير المحدد الذي قمت بإنشائه باعتباره هوية توقيع الرمز الخاص بي.(لقد قمت بإلغاء تثبيت جميع برامج CSI الأخرى الخاصة بي تحسبًا لذلك.) فقط للتكرار:لم يتم تحديد "توزيع iPhone"!

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

لقد قرأت أيضًا سلاسل رسائل StackOverflow أخرى حول هذه المشكلة، لكن يبدو أنها مخصصة للتوزيع وليس للتطوير.

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

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

المحلول 3

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

نصائح أخرى

هل أنت متأكد من أنك لم تقم بتثبيت 3.1.2 ولم تقم بتحديث SDK الخاص بك (أو العكس)؟رقم الإصدار الثانوي يكون مهم، وعدم التطابق يمكن أن يؤدي إلى هذا الخطأ.

لم أجد أبدًا حلاً نشره شخص آخر، لذلك أشارك ما فعلته لإصلاح هذه المشكلة أدناه.

ما فعلته هو إظهار محتويات حزمة ".xcodeproj"، ثم تحرير ملف "project.pbxproj" هناك يدويًا.

ابحث عن قسم يسمى "XCBuildConfiguration" وستتمكن من رؤية جميع التكوينات المختلفة.لقد قمت يدويًا بإزالة العناصر المتعلقة بتوقيع التعليمات البرمجية مثل:

CODE_SIGN_ENTITLEMENTS = dist.plist;
CODE_SIGN_IDENTITY = "iPhone Distribution: xxxx yyyy";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: xxxx yyyy";
PROVISIONING_PROFILE = "zzzzzzzzzzzzzzzzzzzzzzzz";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "zzzzzzzzzzzzzzzzzzzzzzzz";

إذن ما بقي هو ما يلي:

buildSettings = {
                ALWAYS_SEARCH_USER_PATHS = NO;
                COPY_PHASE_STRIP = NO;
                GCC_DYNAMIC_NO_PIC = NO;
                GCC_OPTIMIZATION_LEVEL = 0;
                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                GCC_PREFIX_HEADER = xxx_Prefix.pch;
                INFOPLIST_FILE = "Info.plist";
                PRODUCT_NAME = xxx;
            };

يجب عليك إزالة التكوينات الأخرى أيضًا، إذا كان هناك أي تكوينات مرتبطة بتوقيع التعليمات البرمجية

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