iOS 9: تحذير "يجب دعم جميع اتجاهات الواجهة ما لم يتطلب التطبيق ملء الشاشة" للتطبيق العام




iphone xcode (4)

أعمل على تطبيق عالمي مع جميع الاتجاهات على iPad والصورة فقط على iPhone. يعمل التطبيق جيدًا مع تعدد مهام الشاشة الموزعة على جهاز iPad المتوافق مع نظام التشغيل iOS 9 ، ولكن لدي هذا التحذير:

All interface orientations must be supported unless the app requires full screen

ولا يتطلب تطبيقي ملء الشاشة. يقتصر فقط على صورة على iPhone ... لا ينبغي أن يكون على ما يرام؟ هل هناك طريقة للإعلان عن يتطلب "ملء الشاشة" فقط على iPhone؟

شكرا مقدما

بالمناسبة أنا أستخدم Xcode 7.3.1


الحل لهذا هو استخدام "مفاتيح محددة للجهاز": https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9

وبالتالي ، ستظهر قيم plist كالتالي:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>

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

مربعات الاختيار "Device Orientation" هي لقيم plist الافتراضية. الطريقة الوحيدة التي لن تؤثر على التطبيق على iPad هي إذا كانت هناك قيمة أكثر تحديدًا في المخطط ، وبالتالي قيمة خاصة لجهاز iPad.

عندما يبحث النظام عن مفتاح في ملف Info.plist لتطبيقك ، فإنه يختار المفتاح الأكثر تحديدًا للجهاز الحالي والنظام الأساسي.


انتقل إلى علامة التبويب "المواقع" من التفضيلات ، وحدد موقع مجلد البيانات المشتق للمشروع ، واحذف الملفات المتعلقة بالمشروع.


قم بتعيين UIRequiresFullScreen إلى YES في Info.plist .

استمتع...!!!


للحالة الخاصة بك يمكنك استخدام: UISupportedInterfaceOrientations ~ iphone.

قم بتغيير قسم UISupportedInterfaceOrentations في Info.plist إلى:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~iphone</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

هذه التركيبة لا تنتج أي تحذيرات.





multitasking