Erreur de bundle non valide - "nécessite un storyboard de lancement"

336

Je reçois toujours cette erreur lorsque j'essaie de soumettre mon application au magasin à l'aide de Xcode:

ERREUR ITMS-90475: "Bundle non valide. La prise en charge du multitâche iPad nécessite le lancement du storyboard dans le bundle 'com.companyname.appname.'"

Quelqu'un sait ce que cette erreur signifie vraiment?

matthias_b_nz
la source
Veuillez noter que je viens de passer à Xcode 7 GM aujourd'hui et que j'ai déjà soumis une application au magasin.
matthias_b_nz
1
J'utilisais donc Xcode 7 GM lors de la soumission.
matthias_b_nz
1
Avez-vous compris cela?
andygeers
44
Non, je me suis endormi.
matthias_b_nz

Réponses:

677

En effet, vous devez spécifier comment votre application est censée gérer le multitâche sur iPad.

Si vous ne voulez pas gérer le multitâche pour le moment, vous pouvez simplement le désactiver en allant dans l'onglet "Général" de votre cible:

entrez la description de l'image ici

André Rodrigues
la source
3
Existe-t-il un moyen de faire fonctionner cela sans cocher la case "Nécessite le plein écran"?
msimons
5
@msimons Oui: rendez votre application compatible avec le multitâche iPad et il n'est pas nécessaire de cocher la case. La case à cocher "Nécessite le plein écran" est uniquement à utiliser au cas où votre application ne pourrait pas gérer le multitâche pour le moment. Quoi qu'il en soit, votre application doit spécifier au système d'exploitation si elle est compatible ou non avec le multitâche, sinon Apple ne vous laisse pas soumettre à l'App Store.
André Rodrigues
35
Pourquoi n'ont-ils pas fait de cela la valeur par défaut et obligé les développeurs à opter pour le multitâche? Le processus de soumission des applications était déjà assez compliqué!
Rupert Rawnsley
8
@RupertRawnsley Probablement parce qu'ils veulent que les développeurs rendent leurs applications compatibles avec le multitâche par défaut.
André Rodrigues
1
Mon application utilise le multitâche et n'utilise pas de story-boards, l'erreur indique qu'un "lancement du story-board" est requis. Si je dois incorporer des storyboards dans mon application à cette 99e heure, ce sera un désastre.
Matthys Du Toit
39

J'ai résolu le problème de cette façon, voir ici :

Si vous devez désactiver la vue Slide Over et Split View, faites-le explicitement en ajoutant la clé UIRequiresFullScreen au fichier Info.plist de votre projet Xcode et appliquez la valeur booléenne YES.

marji
la source
31

Vous devez ajouter un écran de lancement (Xcode> Fichier> Nouveau). Sous iOS> Interface utilisateur, vous sélectionnez "Lancer l'écran" pour l'ajouter au projet.

Pour l'iPad, vous devez prendre en charge les 4 orientations.

Sélectionnez dans Xcode votre fichier cible, et sous l'onglet Général, allez dans "Icônes d'application et images de lancement". Ici, vous sélectionnez le fichier d'écran de lancement que vous avez créé. Lorsque vous lancez l'application, vous verrez que les images de lancement (bitmap) ne sont pas utilisées, mais le Storyboard de lancement d'écran.

GeeJad
la source
1
C'est la meilleure réponse. Notez que la plainte est que vous avez besoin d'un storyboard de lancement - mon application avait un fichier XIB d'une version antérieure de XCode, mais ce n'est pas bon pour iOS 9.
Bryan
C'est l'alternative 'fix', si vous voulez gérer le multitâche. Si vous avez un projet en cours et que vous en avez juste besoin pour définir le drapeau Requiert le plein écran est la solution rapide, mais vous devriez probablement envisager d'utiliser des storyboards.
Russ
Meilleur! Je mets à jour mon ancien projet et c'est exactement ce dont j'ai besoin.
LE SANG
27

Vous pouvez le faire comme André l'a montré ou ajouter directement:

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

Sur votre fichier .plist.

Francisco Caviano
la source
1
Depuis Xcode 7.2, l'onglet général a disparu et cela semble être la voie à suivre maintenant.
Peege151
3
Quoi? Non ça ne l'est pas. L'onglet Général n'a pas disparu dans Xcode 7.2.
mbeaty
15

Vous pouvez trouver la case "Nécessite le plein écran" sous Général> Cibles

entrez la description de l'image ici

Dinesh Vaitage
la source
8

Si vous utilisez Cordova, vous voudrez peut-être utiliser le plugin cordova -ios-requires-fullscreen (voir Comment désactiver le multitâche iOS9 via Ionic / Cordova ?)

Mise à jour : vous pouvez également utiliser le cordova-plugin-ipad-multitasking , ce qui semble également empêcher un autre problème (ITMS-90474)

Mise à jour : cela devrait maintenant être corrigé à l'aide des outils Cordova 5.4 sans avoir besoin de ces plugins.

Gyum Fox
la source
Problème toujours là sur Cordova 6.5.0
Mirko
6

De Xcode 8.x. Veuillez vérifier la représentation GIF.

GIF

Ramkrishna Sharma
la source
0

SI vous souhaitez UNIQUEMENT définir le paramètre Plein écran pour iPhone et prendre en charge le multitâche iPad, essayez ceci:

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

entrez la description de l'image ici

LaunchScreenIPad.storyboard est le nom de LaunchScreen pour iPad.

L'iPhone utilisera toujours des Launch Images Sourceimages.

Document de référence Apple: création de clés spécifiques à la plate-forme et au périphérique

hstdt
la source