upload - لا يمكن أن يحتوي Assets.car على أصول 16 بت أو P3 إذا كان التطبيق يدعم نظام التشغيل iOS 8 أو إصدار سابق؟




itunesconnect testflight (10)

هل واجه أي شخص هذا الخطأ عند التحميل على iTunesConnect. يحصل التحميل المسبق على "التحقق من الأصول باستخدام متجر iTunes" ، حيث تظهر لي الخطأ التالي:

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


  1. يمكنك العثور على أيقونات كتالوج الأصول الخاصة بك باستخدام السمة Adobe RGB (1998).
  2. استبدالها مع أيقونة السمة إس آر جي بي IEC61966-2.1

لأنه ، يحتاج إلى تغيير إلى 8bit إس آر جي بي


إجابتي بسيطة ، والعثور على صور ملونة 16 بت وتحويلها إلى صور ملونة عمق 8 بت. إذا لم يكن 16 بت ، فلن يتم تحويله مرة أخرى ، حيث أن sips -m ... ليست غير مناسبة ، مما يعني أنه سيتم تعديل الصورة المحولة مرة أخرى عند تنفيذها مرة أخرى على نفس ملف الصورة.

# before run the commands, cd to the folder which includes all suspicious images.
while IFS= read -d '' -r file; do if [ $(file "$file" | grep -c '16-bit') -eq 1 ]; then sips -m '/System/Library/Colorsync/Profiles/sRGB Profile.icc' "$file"; fi done < <(find . -print0)

كن أكثر وضوحًا ، احفظه كملف bash shell على النحو التالي ،

#/bin/bash

# Before run the shell script, 
# cd to the folder which includes all suspicious images

while IFS= read -d '' -r file; do 
  if [ $(file "$file" | grep -c '16-bit') -eq 1 ]; then
    sips -m '/System/Library/Colorsync/Profiles/sRGB Profile.icc' "$file"; 
  fi 
done < <(find . -print0)

إصلاح بواسطة أمر واحد عبر محطة:

find . -type f -name '*.png' -print0 | while IFS= read -r -d '' file; do sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' "$file" --out "$file"; done

استخدم هذه الأوامر لتثبيت imagemagick

brew update
brew install imagemagick --with-little-cms --with-little-cms2

الآن ، استخدم الخطوات التالية للتحقق من 16 عمق الأصول المستخدمة في المشروع:

1) Change the extension of .ipa to .zip. 

2) Expand the .zip file. This will produce a Payload folder containing your .app bundle. 

3) Open a terminal and change the working directory to the top level of your .app bundle cd path/to/Payload/your.app

4) find . -name "*.png" -print0 | xargs -0 identify | grep "16-bit" | awk '{print $1;}' | xargs mogrify -depth 8

  this command will show you corrupted images. Replace these images with 8 depth images.

بمجرد تحديد الصور كما يتوهم الموضحة في رده ، يمكنك استخدام تطبيق Preview لتغيير ملف تخصيص اللون (في تطبيق Preview ، انتقل إلى Tools -> Assign profile ...) من "Adobe RGB (1998)" ( أو أيًا كانت صورة ملفك الشخصي) إلى "sRGB IEC61966-2.1" ... عندها فقط عليك استيراد الصور المعدلة في مشروعك وإعادة بنائها.


جمع نسخة من كل ما تبذلونه من بابوا نيو غينيا لفي مجلد

على سبيل المثال اسم صورة المجلد ووضعها في سطح المكتب

ثم انتقل إلى المحطة الطرفية وقم بتغيير الدليل إلى المجلد الذي قمت بنقل الصور فيه

مؤتمر نزع السلاح سطح المكتب / صورة

تشغيل هذا

sips -g all * .png> print.txt

ستجد ملف باسم Print.txt تم إنشاؤه في المجلد (داخل الصورة)

فتحه والبحث فيه

bitsPerSample:

إذا وجدت أن الرقم الموجود بجانبه مختلف عن 8 ، فستحصل على الصورة الخاطئة

افتح هذه الصورة (أو الصور) في تطبيق المعاينة ، ثم قم بتصديرها إلى التنسيق نفسه وتأكد من تحديد عمق ألوان 8 بت (ملاحظة إذا قمت بتحديد صور متعددة ، فلن ترى تحديد عمق اللون ولكنه لا يزال يعمل)

نسخ واستبدال الصور الجديدة مع مرة واحدة.

قم أيضًا بما يلي كإضافة إلى ما قمت بنشره مسبقًا

تطبق هذه الخطوة على جميع الصور افتح كل أو كل الصور في تطبيق المعاينة ، انقر فوق أدوات> ضبط الحجم> ثم اضبط نقطة في البوصة إلى 72 و الأدوات> تعيين ملف تعريف> ثم حدد ملف تعريف RGB العام

هذا كل شئ


قم أيضًا بما يلي كإضافة إلى ما قمت بنشره مسبقًا

تطبق هذه الخطوة على جميع الصور افتح كل أو كل الصور في تطبيق المعاينة ، انقر فوق أدوات> ضبط الحجم> ثم اضبط البوصة على 72
والأدوات> تعيين ملف التعريف> ثم حدد Generic RGB Profile


كان قادرا على حل باستخدام الخطوات ff:

  1. فحص جميع أصولي وتأكد من عدم وجود P3 باستخدام إجابة @ fancy.
  2. ابحث يدويًا في أصول Xcode لمساحة ألوان غير RGB.
  3. حدد هدف النشر من 8.3 إلى 8.2

من وحي Ignacio ، تمكنت من تحويل جميع صور AdobeRGB1998 إلى صور sRGB مع البرامج النصية التالية

تثبيت imagemagick

brew update
brew install imagemagick --with-little-cms --with-little-cms2

البحث عن الصور وتحويلها إلى ملف تعريف sRGB

cd path>to>Images.xcassets>folder
find . -name '*.png' -exec convert "{}" \
-profile    "/System/Library/ColorSync/Profiles/AdobeRGB1998.icc" \
-profile "/System/Library/ColorSync/Profiles/sRGB Profile.icc" \
"{}"  \;

إذا لم يكن لديك AdobeRGB1988.icc عليك ماك

النظر في تنزيله هنا AdobeRGB1998 https://www.adobe.com/support/downloads/iccprofiles/iccprofiles_mac.html https://www.adobe.com/digitalimag/adobergb.html


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

الجزء 1 سوف يشرح كيفية معرفة الصور التي هي المسيئة.

يوضح لك الجزء 2 كيفية ضبط تنسيق الصورة حتى يكون iTunesConnect سعيدًا به. إذا كان لديك سوى عدد قليل من الصور ، يمكنك الانتقال إلى الجزء 2 والتحقق منها يدويًا.

الجزء 1: تحديد الصور المخالفة:

يحتوي منتدى مطوّري برامج Apple على موضوع في هذا: https://forums.developer.apple.com/thread/60919

الحل المقبول هو كما يلي:

كيفية حل "ERROR ITMS-90682: حزمة غير صالحة - لا يمكن أن يحتوي كتالوج الأصول على" Payload / XXXXX / Assets.car "على أصول 16 بت أو P3 إذا كان التطبيق يدعم نظام التشغيل iOS 8 أو إصدار سابق."

مع Xcode 8 GM ، سيحدث هذا الخطأ إذا قمت بتضمين أصول 16 بت أو P3 في تقديم تطبيق يستهدف إصدارات iOS السابقة ثم iOS 9.3. إذا كان التطبيق الخاص بك يتطلب وظيفة ألوان واسعة ، فيجب عليك تغيير "هدف النشر" الخاص بك إلى iOS 9.3 أو إصدار أحدث. إذا كان التطبيق الخاص بك لا يتطلب وظيفة ألوان واسعة وترغب في نشرها على إصدارات iOS الأقدم ، فيجب عليك استبدال جميع أصول 16 بت أو P3 بأصول sRGB ذات 8 بتات.

يمكنك العثور على أصول 16 بت أو P3 عن طريق تشغيل "الأصول" في كتالوج الأصول المسمى في رسالة الخطأ من iTunes Connect. توضح الخطوات التالية العملية: 1. قم بإنشاء ملف .ipa قابل للفحص. في Xcode Organizer (Xcode-> Window-> Organizer) ، حدد أرشيفًا لفحصه ، وانقر فوق "تصدير ..." ، واختر "Export for Enterprise أو Ad-Hoc Deployment" ، مما يؤدي إلى إنشاء نسخة محلية من. 2. حدد موقع ملف .ipa هذا وقم بتغيير الامتداد إلى .zip. 3. قم بتوسيع ملف .zip. سيؤدي ذلك إلى إنشاء مجلد Payload يحتوي على حزمة .app. 4. افتح محطة وقم بتغيير دليل العمل إلى المستوى العلوي من المسار الخاص بك .app package cd / to / Payload / your.app

  1. استخدم أداة العثور لتحديد موقع ملفات Assets.car في حزمة .app كما هو موضح أدناه: find. - اسم "Assets.car"

  2. استخدم أداة الأصول للعثور على أي أصول 16 بت أو P3 ، في كل Assets.car التطبيق الخاص بك على النحو المبين أدناه. : sudo xcrun --sdk iphoneos الأصول - معلومات / مسار /to/a/Assets.car> /tmp/Assets.json

  3. فحص /tmp/Assets.json الناتج وابحث عن أي محتويات تحتوي على "DisplayGamut": "P3" و "الاسم" المقترن به. سيكون هذا هو اسم مجموعة الصور الخاصة بك التي تحتوي على واحد أو أكثر من أصول 16 بت أو P3.

  4. استبدل هذه الأصول بأصول 8 بت / إس آر جي بي ، ثم أعد إنشاء التطبيق.

الجزء 2: اضبط ملف تخصيص اللون للصور بحيث يكون لطيفًا مع iTunesConnect

افتح "المعلومات" للملف المخالف (CMD + I). تحقق ملفك الشخصي اللون.

لا أعلم أي ملفات تعريف دقيقة على ما يرام وأيها ليست كذلك ، ولكن بالتأكيد تم رفض "Adobe RGB (1998)". لذلك استخدمت "Color Synch Utility" (يأتي مع OSX). (انقر بزر الماوس الأيمن على الصورة ، افتح بـ ...)

الآن في الجزء السفلي لديك إمكانية تعيين ملف تعريف لون مختلف:

الآن إذا قمت بفحص صورتك مرة أخرى ، فيجب أن تبدو كما يلي:

استبدل صورتك السابقة وحاول مرة أخرى. هذا عملت لي ، وآمل أن يكون هذا يساعدك.