web-dev-qa-db-fra.com

"Votre fichier binaire n'est pas optimisé pour iPhone 5" après avoir téléchargé une application avec xcode 6.0.1

Je reçois cet email après avoir téléchargé mon binaire avec Xcode Version 6.0.1 (6A317)

Votre binaire n'est pas optimisé pour iPhone 5 - - Les nouvelles applications et mises à jour d'applications iPhone soumises doivent prendre en charge l'écran de 4 pouces sur iPhone 5 et inclure une image de lancement référencée dans la fiche Info.plist sous UILaunchImages avec une valeur UILaunchImageSize définie sur {320, 568}. Les images de lancement doivent être des fichiers PNG et situées au niveau supérieur de votre ensemble, ou fournies dans chaque dossier .lproj si vous localisez vos images de lancement. Pour en savoir plus sur la prise en charge de l'iPhone 5 et les images de lancement d'applications, consultez les «Instructions relatives à l'interface utilisateur iOS» à l'adresse/ https://developer.Apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html # // Apple_ref/doc/uid/TP40006556-CH14-SW5 'et le' Guide de programmation de l'application iOS 'sur' https://developer.Apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide /App-RelatedResources/App-RelatedResources.html#//Apple_ref/doc/uid/TP40007072-CH6-SW12 '.

Voici mon fichier de pliste:

enter image description here

Voici mon arbre Xcode:

enter image description here

Voici mon arbre racine bundle:

enter image description here

Voici la seule ressource que j'ai pu trouver sur ce problème mais il reste sans réponse (3 jours) ... https://devforums.Apple.com/message/1051948#1051948

18
Benjamin Toueg

Nous avons rencontré le même problème et ne pouvions pas le résoudre après avoir essayé de nombreuses solutions. Nous pensons que c'est une sorte de bogue dans la soumission d'applications . Mais nous avons trouvé une solution de contournement permettant de localiser les images de lancement et de passer la vérification de la soumission.

Environnement:

Xcode 6.1 (6A1052c) avec SDK iOS 8.1

Condition:

Ayez les propriétés suivantes dans votre fichier "* -info.plist".

enter image description here

Pas:

  1. Allez dans les paramètres de votre cible et dans notre scénario standard (localisez Images, qui utilise "UILaunchImages" dans "* -info.plist" mais pas Images.), Il devrait ressembler à l'image enter image description here

  2. Modifiez le paramètre pour utiliser les ressources d'image (Remarque: après cette étape, Xcode RETIREA automatiquement les propriétés "UILaunchImages" de votre fichier * -info.plist. Veuillez donc d'abord sauvegarder les propriétés.)

  3. Accédez aux ressources "LaunchImage" (vous pouvez cliquer sur le bouton fléché de droite) et remplissez-les avec les images de l'un de vos dossiers * .lproj .enter image description here

  4. Maintenant, allez dans le dossier "LaunchImage" qui contient les images et le fichier "Contents.json" .enter image description here

  5. Supprimez TOUT le lancementIMAGESque vous venez d’ajouter, mais conservez le fichier "Contents.json" (et son contenu).

  6. Vérifiez le "Contents.json", il devrait contenir des propriétés comme image ci-dessous enter image description here

Vérifiez les points suivants:

  • Images de lancement localisées dans des dossiers de ressources (en.lproj, ja.lproj, etc.)

  • * -info.plist contient les propriétés "UILaunchImages"

  • Le paramètre de projet utilise la ressource d'image pour lancer les images.

  • "Contents.json" dans le dossier "LaunchImage", et le dossier N'A PAS contient vraiment des images de lancement

Vous pouvez maintenant essayer des images de lancement localisées et soumettre le fichier binaire à iTunes Connect. Dans notre application, la solution de contournement fonctionnait pour " images de lancement localisées " et " soumission réussie ".

Cela devrait être un truc pour éviter le bogue dans la vérification de la soumission.

Étant donné que la solution de contournement ci-dessus ne modifie aucune ressource, à l'exception du fait que la vérification pense que nous utilisons des ressources d'image, nous sommes davantage convaincus qu'il existe des bogues dans la vérification d'Apple. 

À votre santé!

24
Charlie Hung

Pour être plus clair:

  1. Changez votre source d’image de lancement en "Launch Image" (suivez les étapes 1 à 3 de la réponse de @Charlie Hung).

 enter image description here

  1. Faites un clic droit sur votre projet et sélectionnez "Afficher dans le Finder".
  2. Recherchez le dossier Assets.xcassets et ouvrez-le.
  3. Ouvrez le dossier LaunchImage.launchimage et déplacez vos deux images dans le dossier .Iproj que vous trouverez dans votre projet. (Le mien s'appelait Base.Iproj). 

Enfin, ajoutez ceci à votre info.plist (ouvert dans l’éditeur de texte):

<key>UILaunchImages</key>
  <array>
    <dict>
      <key>UILaunchImageMinimumOSVersion</key>
      <string>7.0</string>
      <key>UILaunchImageName</key>
      <string>iOS7-Default </string>
      <key>UILaunchImageOrientation</key>
      <string>Portrait</string>
      <key>UILaunchImageSize</key>
      <string>{320, 480}</string>
    </dict>
  </array>

C'est tout ce que j'avais à faire.

3
Dan Beaulieu

Cela m'est arrivé aussi. Depuis iOS6 (je pense), si vous localisez votre application, vous devez être cohérent tout le temps. Vous avez l'anglais, le néerlandais et le français comme langues comme je le vois sur la capture d'écran. Vous devez avoir ces langues partout où vous effectuez la localisation. Vos fichiers de localisation de chaînes doivent contenir toutes ces langues, mais pas plus de langues . J'ai eu la même réponse lorsque j'ai utilisé la bibliothèque AppiRater pour une application. AppiRater a des messages dans de nombreuses langues et mon application est localisée uniquement pour 2 langues. J'ai donc dû supprimer tous les autres fichiers de chaîne d'AppiRater, à l'exception des 2 dont j'avais besoin… .. Une fois que j'ai fait cela, tout s'est bien passé.

La réponse est donc simple: supprimez tous les fichiers de localisation supplémentaires que vous n'avez pas besoin de prendre en charge et ajoutez les fichiers de localisation manquants dans votre application.

À votre santé!

Edit by danielgindi

Cela fonctionne, en dépit de certaines affirmations selon lesquelles cette réponse est sans importance… .. C'est ce qui m'est arrivé lorsque j'ai commencé à utiliser la localisation de base dans une application et que certaines ressources étaient toujours localisées dans le dossier en.lproj, notamment le Default.pngs.

Ainsi, vous pouvez soit vous assurer que vous avez le fichier [email protected] dans tous des dossiers de localisation que vous utilisez - ou supprimer des localisations que vous n'utilisez pas. Je viens de tout déplacer pour être dans Base.lproj, donc de cette façon, il est clair quel png il prend, et il n'y a pas de doublon.

3
raz_c

Dans mon cas, je mettais à jour une ancienne application. Il s'est avéré qu'il me manquait un fichier d'icône nommé [email protected] de dimensions 320x568. J'ai trouvé cela en regardant à travers les avertissements. J'ai créé le fichier, je l'ai ajouté à mon projet avec les autres fichiers d'icônes et cela a bien fonctionné.

J'espère que ça aide quelqu'un :-)

0
JanB

La même erreur s'est produite dans les environnements de déploiement 9.3 et Swift 2.3. Dans mon cas, je n'avais pas le fichier de storyboard (xib) pour l'image de lancement, ce qui est nécessaire et ma configuration était incorrecte dans les paramètres de cible des projets. Voir le lien ci-dessous :

Image de Paramètres

0
Shoaib Bagwan

J'ai la même erreur, mais dans mon cas, je n'avais pas le fichier de storyboard (xib) pour l'image de lancement, ce qui est nécessaire:

"Vous utilisez un fichier de lancement XIB ou du storyboard pour indiquer que votre application est exécutée sur iPhone 6 Plus ou iPhone 6." ( vois ici )

J'ai suivi ce tutoriel pour le créer: https://developer.xamarin.com/recipes/ios/general/templates/launchscreen-xib/

Pour l'étape 9 du turorial, dans l'Info.plist, j'ai défini: 

<key>UILaunchImageFile~iphone</key>
<string>Launch Screen.storyboard</string>

 info.plist adding key launch image and string storyboard file

Juste pour vérifier, lorsque vous exécutez votre application, vous devriez voir l'image de votre écran de lancement avant son chargement. Après cela, j'ai pu télécharger l'application sur l'App Store.

Les étapes indiquées ci-dessus dans d'autres réponses sont également importantes: "Si vous devez également prendre en charge des versions antérieures d'iOS, vous pouvez continuer à fournir des images de lancement statiques en plus d'un fichier de lancement." ( vois ici )

J'espère que cela t'aides.

0
maledr53

Ceci est peut-être utile pour certains joueurs: il suffit de changer le iOS Deployment Target de 7.0 à 8.1 ou plus.

 enter image description here

J'ai rencontré ce problème lorsque je veux télécharger une application sur l'App Store créée par react-native 0.37 et que sa valeur par défaut iOS Deployment Target est 7.0.

0
Spark.Bao

Faites ce que Charlie et Dan recommandent ET assurez-vous que vos noms de fichiers d'image ne comportent pas de tiret. Le mien ne fonctionnait pas tant que je n'avais pas renommé les fichiers alphanumériques.

0
mixophrygian