الرد الأصلي: كيفية نشر تطبيق Expo إلى TestFlight + Debug الأخطاء الشائعة

بقلم جيف لويس

هل لديك React Native Expo App؟ هل تريد نشره على TestFlight للاختبار؟ ثم هذا الدليل هو بالنسبة لك.

ملاحظة: يفترض هذا الدليل أن لديك حساب Apple Developer بالإضافة إلى تثبيت Expo CLI من خلال NPM. سوف تحتاج على حد سواء لهذا العمل.

1. إعداد مشروعك للبناء

A. App.json

في جذر مجلد المشروع ، يجب أن يكون هناك بالفعل ملف app.json.

ملاحظة: يمكن إدراج الخصوصية على أنها "عامة" أو "خاصة" أو "غير مدرجة".

{
  "المعرض": {
    "name": "YOUR_NAME_HERE" ،
    "سبيكة": "YOUR_SLUG_HERE" ،
    "الخصوصية": "غير مدرجة" ،
    "sdkVersion": "32.0.0" ،
    "المنصات": [
       "دائرة الرقابة الداخلية"،
       "ذكري المظهر"
     ]،
     "الإصدار": "1.0.0" ،
     "الاتجاه": "صورة" ،
     "الرمز": "./assets/icon.png" ،
       "البداية": {
         "صورة": "./assets/splash.png" ،
         "resizeMode": "تحتوي على" ،
         "backgroundColor": "#ffffff"
       }،
     "التحديثات": {
       "fallbackToCacheTimeout": 0
     }،
     "أصل" حزمة البيانات ": [
       "** / *"
     ]،
     "ios": {
       "supportTablet": صحيح ،
       "bundleIdentifier": "YOUR_BUNDLE_IDENTIFIER_HERE"
     }
   }
}

إضافة أيقونة التطبيق

إذا لم تتم إضافة رمز لمشروعك ، فسيظهر لك الخطأ التالي:

لا يمكن أن تحتوي أيقونة التطبيق على شفافية إذا كنت ترغب في تحميل تطبيقك إلى Apple Store.

لإصلاح هذا الأمر ، سيتعين عليك إنشاء أيقونة 1024 × 1024 في Photoshop و Illustrator و Affinity ، وما إلى ذلك. حجم الأيقونة المثالي هو 1024x1024 وعندما نقوم ببناء التطبيق ، سيقوم Expo بإنشاء أحجام الرموز الأصغر اللازمة.

الآن وبعد أن أصبح لديك رمز 1024 × 1024 ، سنضيفه إلى مجلد الأصول ونصحح مسار الرمز في app.json.

"الرمز": "./assets/icon.png" ،

C. Bundle Identifier (Apple Developer)

سيحتاج تطبيق React Native Expo أخيرًا إلى معرف حزمة.

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

يجب أن يحتوي مشروعك على bundleIdentifier في app.json.

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

ثم انقر فوق معرفات التطبيق.

انقر على زر +.

ثم اختر لاحقة معرف التطبيق الخاص بك. اللاحقة الموصى بها هي com.domainname.appname

معرف الحزمة (المشروع)

الآن وقد تم إنشاء Bundler Identifier من خلال حساب Apple Developer ، ستحتاج إلى إضافته إلى app.json.

"ios": {
  "supportTablet": صحيح ،
  "bundleIdentifier": "YOUR_BUNDLE_IDENTIFIER_HERE"
}

2. إنشاء تطبيق (.IPA)

بناء القيادة

تم إعداد تطبيقنا الآن لإنشاء ملف iOS IPA باستخدام Expo. سنبدأ بتشغيل الأمر التالي:

بناء المعرض: دائرة الرقابة الداخلية

ب. أوراق اعتماد Apple Developer + تحسين الصور

في الجهاز ، ستتم مطالبتك بتسجيل الدخول باستخدام بيانات اعتماد Apple Developer.

سيُطلب منك بعد ذلك إنشاء بيانات اعتماد و / أو تحسين الصور. تركت هذه الإعدادات الافتراضية واتركهم ينشئون بيانات اعتماد ويحسنون الصور.

اكتمل الآن إنشاء تطبيق React Native Expo وهو بصيغة IPA.

C. تنزيل تطبيق البناء (.IPA)

بمجرد الانتهاء من بناء التطبيق ، يجب أن تتلقى الرسالة التالية. باستخدام عنوان url هذا ، يمكننا تنزيل تطبيقنا المدمج (.ipa).

✔ بناء الانتهاء.
تم بناء التطبيق المستقل بنجاح: YOUR_APP_URL

3. إضافة معرض اكسبو إلى Xcode

أ. محمل التطبيق (Xcode)

في Xcode ، حدد قائمة Xcode ، وحدد خيار Open Developer Tool ، وحدد Application Loader. هنا يمكنك استيراد وتحميل ملف .ipa الخاص بك إلى iTunesConnect.

بمجرد بدء تشغيل Loader ، ستتم مطالبتك بكلمة مرور Apple ID + الخاصة بك. ومع ذلك ، هذه ليست كلمة المرور العادية لحساب iCloud / Developer الخاص بك. ستحتاج إلى إنشاء كلمة مرور خاصة بالتطبيق وإلا فسوف تحصل على الخطأ التالي:

تسجيل الدخول باستخدام كلمة المرور الخاصة بالتطبيق التي أنشأتها. إذا نسيت كلمة المرور الخاصة بالتطبيق أو كنت بحاجة إلى إنشاء كلمة مرور جديدة ، فانتقل إلى appleid.apple.com

B. إنشاء كلمة مرور خاصة بالتطبيق (معرف Apple)

يمكنك إنشاء كلمة مرور خاصة بالتطبيق من خلال معرّف Apple الخاص بك وإدخال بيانات اعتمادك والنقر فوق "إنشاء كلمة مرور".

سيُطلب منك حينئذٍ إنشاء كلمة مرور للتسمية (كنية) وسيتم إنشاء كلمة مرور خاصة بالتطبيقات.

C. إضافة معرف حزمة (اتصال متجر التطبيقات)

إذا لم يكن لديك إعداد Bundle ID في متجر التطبيقات ، فستتلقى الخطأ التالي:

لم يتم العثور على سجلات التطبيق المناسبة. تحقق من صحة معرف الحزمة "YOUR_BUNDLE_PROFILER_HERE".

لإصلاح ذلك ، سيتعين عليك الانتقال إلى App Store Connect ، حيث سيُطلب منك مرة أخرى إدخال اسم المستخدم وكلمة المرور الخاصين بـ Apple ID (وليس كلمة المرور الخاصة بالتطبيق).

انقر على تطبيقاتي.

انقر فوق علامة + وقم بإنشاء تطبيق جديد.

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

تسليم التطبيق الخاص بك (Xcode)

يمكنك الآن أخذ ملف .ipa الذي تم إنشاؤه حديثًا ، وتحديده من مُحمِّل التطبيق الخاص بـ Xcode ، وإدخال معرف Apple وكلمة المرور الخاصة بالتطبيق.

4. إرسال دعوة TestFlight (اتصال متجر التطبيقات)

بينما لا تزال في App Store Connect ، انقر فوق التطبيق الخاص بك وانتقل إلى علامة التبويب TestFlight.

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

لإضافة اختبار ، انقر فوق علامة + وأدخل معلومات الاختبار وعنوان البريد الإلكتروني.

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

وهذا كل شيء! سيتم إرسال دعوة لاختبار التطبيق قريبًا (قد يستغرق ذلك ساعات) عبر البريد الإلكتروني للمُختبرين لاسترداد التطبيق.

5. غيرها من أخطاء المعرض المشترك و Xcode

أ. خطأ المعرض:

لا يمكن بدء بناء جديد ، حيث يوجد بالفعل بنية قيد التنفيذ.

انتقل إلى https://expo.io/builds ، وأدخل بيانات الاعتماد الخاصة بك ، وقم بإلغاء الإنشاء قيد التقدم.

خطأ المعرض:

اتصال ECONNREFUSED 127.0.0.1:19001

في المحطة الطرفية الخاصة بك ، أدخل بداية المعرض ثم قم بإنشاء المعرض: ios.

خطأ في المعرض:

لم يتم العثور على سجلات التطبيق المناسبة. تحقق من صحة معرف الحزمة "YOUR_BUNDLE_PROFILER_HERE".

تم إصلاح هذا الخطأ في القسم 3. أضف Expo Build إلى Xcode ، الجزء C. إضافة Bundle ID (App Store Connect).

خطأ المعرض

السبب: لا تتوفر شهادة لتقديم ملف تعريف للحكم ، الخام: "تأكد من أنك تمكنت من إنشاء شهادة قبل هذه الخطوة"

خطأ المعرض

مفقود إشعار الإخطار المستحق - يبدو أن التطبيق يسجل في خدمة Apple Push Notification ، لكن استحقاقات توقيع التطبيق لا تشمل استحقاق "aps-environment". إذا كان التطبيق الخاص بك يستخدم خدمة Apple Push Notification ، فتأكد من تمكين معرف التطبيق الخاص بك لـ Push Notification في بوابة التزويد ، وأعد إرساله بعد التوقيع على التطبيق الخاص بك باستخدام ملف تعريف توفير التوزيع الذي يشتمل على "aps-environment".

لإصلاح هذا الأمر ، سيتعين عليك تشغيل الأمر التالي لإنشاء إصدار جديد.

ملاحظة: إذا كانت هذه هي المرة الثانية التي تقوم فيها بإنشاء وتقديم طلبك إلى Apple لـ TestFlight ، فسوف يتعين عليك تحديث الإصدار في app.json.

بناء المعرض: دائرة الرقابة الداخلية - ملف التوفير الواضح

واو خطأ المعرض

تم العثور على ملفات تعريف متعددة باسم "com.appName.appName AppStore". الرجاء إزالة الملفات الشخصية المكررة والمحاولة مرة أخرى. "

لإصلاح ذلك ، قم بإزالة / إبطال جميع المفاتيح وتوصيفات التوفير الموجودة في حساب مطور Apple الخاص بك.

ثم أعد تشغيل معرض expo: ios - ملف تعريف التوفير الواضح والسماح لـ Expo بإنشاء كل الملفات الضرورية عند إنشاء ملف .ipa.

خطأ G. Xcode (App.json)

خطأ ITMS-90189: "التحميل الثنائي المكرر. لقد قمت بالفعل بتحميل بنية برقم البنية" 1 "لرقم الإصدار" 1.0.0 ". تأكد من زيادة سلسلة الإنشاء قبل تحميل التطبيق إلى App Store Connect. تعرف على المزيد في تعليمات Xcode (http://help.apple.com/xcode/mac/current/#/devba7f53ad4). "

لإصلاح ذلك ، انتقل إلى ملف app.json وقم بزيادة رقم الإصدار مثل ما يلي:

"الإصدار": "1.0.1" ،