Invalid Bundle Error - «требуется раскадровка запуска»


336

Я продолжаю получать эту ошибку, когда я пытаюсь отправить свое приложение в магазин, используя Xcode:

ОШИБКА ITMS-90475: «Invalid Bundle. Поддержка многозадачности iPad требует запуска раскадровки в комплекте com.companyname.appname».

Кто-нибудь знает, что на самом деле означает эта ошибка?


Обратите внимание, что я только что обновил Xcode 7 GM сегодня и уже отправил приложение в магазин.
matthias_b_nz

1
Поэтому я использовал Xcode 7 GM при отправке.
matthias_b_nz

1
Вы поняли это?
andygeers

44
Нет, я пошел спать.
matthias_b_nz

Ответы:


677

Это потому, что вам нужно указать, как ваше приложение должно обрабатывать многозадачность на iPad.

Если вы не хотите обрабатывать многозадачность прямо сейчас, вы можете просто отключить ее, перейдя на вкладку «Общие» вашей цели:

введите описание изображения здесь


3
Есть ли способ заставить это работать, не устанавливая флажок «Требуется полный экран»?
Миссимон

5
@msimons Да: сделайте ваше приложение совместимым с многозадачностью iPad, и вам не нужно будет ставить флажок. Флажок «Требуется полный экран» используется только в том случае, если ваше приложение не поддерживает многозадачность в данный момент. В любом случае, ваше приложение должно указывать операционной системе, совместимо ли оно с многозадачностью или нет, в противном случае Apple не разрешит вам отправляться в App Store.
Андре Родригес

35
Почему они не сделали это по умолчанию и не требовали, чтобы разработчики включили многозадачность? Процесс отправки приложения был уже достаточно сложным!
Руперт Роунсли

8
@RupertRawnsley Вероятно, потому что они хотят, чтобы разработчики сделали свои приложения совместимыми с многозадачностью по умолчанию.
Андре Родригес

1
Мое приложение использует многозадачность, и оно не использует раскадровки, ошибка гласит, что требуется "запуск раскадровки". Если в этот 99-й час мне нужно будет включить раскадровки в мое приложение, это будет катастрофой.
Matthys Du Toit

39

Я решил проблему таким образом, смотрите здесь :

Если вам необходимо отказаться от Slide Over и Split View, сделайте это явно, добавив ключ UIRequiresFullScreen в файл Info.plist вашего проекта Xcode и примените логическое значение YES.


31

Вам нужно добавить экран запуска (Xcode> File> New). Под iOS> Пользовательский интерфейс вы выбираете «Launch Screen», чтобы добавить его в проект.

Для iPad вам нужно поддерживать все 4 ориентации.

Выберите в Xcode свой целевой файл и на вкладке «Общие» перейдите в «Значки приложений и запуск изображений». Здесь вы выбираете файл Launch Screen, который вы создали. Когда вы запустите приложение, вы увидите, что изображения запуска (растровые) не используются, но раскадровка экрана запуска.


1
Это лучший ответ. Обратите внимание, что жалоба заключается в том, что вам нужна раскадровка для запуска - в моем приложении был файл XIB какой-то более ранней версии XCode, но это не годится для iOS 9.
Брайан,

Это альтернативное исправление, если вы хотите обрабатывать многозадачность. Если у вас есть текущий проект, и вам просто нужно пройти его, установите флаг Требуется полноэкранный режим, это быстрое решение, но вам, вероятно, стоит изучить использование раскадровок.
Расс

Лучший! Я обновляю свой старый проект, и это именно то, что мне нужно.
LE SANG

27

Вы можете сделать это так, как показал Андре, или сразу добавить:

<key>UIRequiresFullScreen</key>
<true/>

В вашем .plist файле.


1
Начиная с Xcode 7.2, вкладка «Общие» исчезла, и теперь кажется, что это путь.
Peege151

3
Какой? Нет, это не так. Вкладка General не исчезла в Xcode 7.2.
Mbeaty


8

Если вы используете Cordova, вы можете использовать плагин cordova-ios-require-fullscreen (см. Как отключить многозадачность iOS9 через Ionic / Cordova ?)

Обновление : вы также можете использовать cordova-plugin-ipad-multitasking , что, по-видимому, также предотвращает другую проблему (ITMS-90474)

Обновление : теперь это должно быть исправлено с помощью инструментов Cordova 5.4 без необходимости использования этих плагинов.


Выпуск еще есть на кордове 6.5.0
Мирко


0

Если вы хотите установить ТОЛЬКО для iPhone и поддерживать многозадачность iPad, попробуйте следующее:

<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIPad.storyboard</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>

введите описание изображения здесь

LaunchScreenIPad.storyboard это название LaunchScreen для iPad.

iPhone все еще будет использовать Launch Images Sourceкартинки.

Ссылка на документ Apple: создание ключей для платформы и устройства

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.