سؤال

كتبت السيناريو الذي يستخدم xcodebuild إلى توليد مخصصا بناء من تطبيق اي فون.

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

هل هناك أي طريقة استخراج المخصصات الشخصي أو اسم الملف إلى التطبيق:

  • من بنى وقعت التطبيق
  • من كسكودي المشروع (أنا لا أريد أن يدويا تحليل المشروع.pbxproj الملف ، كما أن هذا الحل قد كسر في القادم كسكودي تحديث)
  • أي الطريقة التي هي النصية

غير مغفور اقترح استخدام الأمر security للحصول على اسم الشهادة المستخدمة لتوقيع التطبيق.مرة واحدة لديك هذه المعلومات ، هل هناك أي طريقة ثم ابحث عن اسم التزويد الشخصي ؟


هنا هو ما حاولت:

للأسف إخراج xcodebuild خلال بناء لا تحتوي على هذه المعلومات.خلال CodeSign الخطوة ، هناك خط:

/usr/bin/codesign -f -s "iPhone Distribution: My name" ...

ولكن أنا لا يمكن أن تتطابق مع شهادة.

نظرت إلى استخدام codesign ، الأمر

/usr/bin/codesign -d -vvv --entitlements - -r - /Users/lv/Desktop/TicTacBoo.app/TicTacBoo
بدا واعدا ، ولكن هذا لا يعطيني المعلومات التي أحتاجها.
لم أجد أي خيار مفيد في xcodebuild سواء.

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

المحلول

ملف تعريف التوفير بالفعل في تطبيق. لا تحتاج إلى نسخة أخرى في ملف zip الخاص بك (إلا إذا لم يفهم المختبرين كيفية استخدام النسخة داخل التطبيق.)

تم تسميته YourApplication.app/embedded.mobileprovision

هذا لا يجيب على سؤالك لأن اسم الملف الأصلي ضائع ، ولكن يبدو أنه يحل مشكلتك الأكبر.

نصائح أخرى

يمكنك استخدام أمر "الأمان" من المحطة ؛ لسوء الحظ ، على الأقل على MBP الخاص بي مع Snow Leopard ، يبدو أنه يتسبب في خطأ تجزئة في أحد الأوامر التي تحتاجها لإصدارها. لمزيد من المعلومات ، إصدار من المحطة

man security

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

security unlock-keychain login.keychain;
security find-certificate -a -c "iPhone Distribution: Your name"  -p > cert.pem;

يتسبب الأمر الثاني في خطأ التجزئة (الناجم عن وسيطة -C) ، ولكن يجب أن يكون بالضبط ما تحتاجه. بدلاً من ذلك ، يمكنك استخدام

security find-identity -p codesigning -v;

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

اسمحوا لي أن أعرف ما إذا كان هذا يعمل على جهاز Mac الخاص بك أو إذا كنت تواجه نفس مشكلة خطأ التجزئة.

تحرير/تحديث: لقد تحققت من الخلل على الأجهزة الأخرى ورفعت خطأ إلى Apple.

كيف ابحث في _CodeSignature/CodeResources plist (من بني التطبيق) على ملفات من نوع "mobileprovision"?

وإليك طريقة القيام بذلك باستخدام الإعدادات الافتراضية(1) قراءة plist.لديك لنسخ CodeResources الملف إلى شيء ".plist" لاحقة للحفاظ على التخلف سعيد...

cp /build/Distribution-iphoneos/MyApp.app/_CodeSignature/CodeResources /tmp/defaults.plist
defaults read /tmp/defaults files |grep .mobileprovision |grep -v embedded.mobileprovision

(في حالة اختبار ، هناك 2 .mobileprovision إدخالات هناك ؛ تجاهل واحد اسمه "جزءا لا يتجزأ.mobileprovision")

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