"Ваш бинарный файл не оптимизирован для iPhone 5" после загрузки приложения с помощью xcode 6.0.1

Я получаю это электронное письмо после загрузки моего двоичного файла с помощью Xcode Version 6.0.1 (6A317)

Ваш бинарный файл не оптимизирован для iPhone 5 - - Новые приложения и приложения для iPhone представленные обновления должны поддерживать 4-дюймовый дисплей на iPhone 5 и должны включить изображение запуска, указанное в Info.plist в UILaunchImages с значением UILaunchImageSize, установленным на {320, 568}. Запуск изображений должен быть PNG файлами и расположен на верхнем уровне вашего пакет или предоставляется в каждой папке .lproj, если вы локализуете свою запускать изображения. Подробнее о поддержке iPhone 5 и изображениях запуска приложений... путем изучения "Руководства по человеческому интерфейсу iOS" на 'https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5' и "Руководство по программированию приложений для iOS" в 'https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/App-RelatedResources/App-RelatedResources.html#//apple_ref/doc/uid/TP40007072-CH6-SW12'.

Вот мой файл plist:

enter image description here

Вот мое дерево Xcode:

enter image description here

Вот мое корневое дерево связки:

enter image description here

Вот единственный ресурс, который я могу найти по этой проблеме, но он остается без ответа (3 дня)... https://devforums.apple.com/message/1051948#1051948

Ответы

Ответ 1

Мы столкнулись с одной и той же проблемой и не смогли ее решить, попробовав много решений, мы считаем это своего рода ошибкой при подаче приложений. Но мы нашли обходное решение, которое может поддерживать локальные изображения запуска и передавать проверку отправки.

Окружающая среда:

Xcode 6.1 (6A1052c) с iOS 8.1 SDK

Предпосылка:

В вашем файле "* -info.plist" есть следующие свойства.

enter image description here

Шаги:

  • Перейдите к своим целевым настройкам и в нашем стандартном сценарии (локализовать запускать изображения, которые используют "UILaunchImages" в "* -info.plist", но не image), он должен выглядеть как изображение enter image description here

  • Измените настройку использования ресурсов изображения (Примечание: после этого шага Xcode автоматически удалит свойства "UILaunchImages" в вашем файле * -info.plist. Поэтому сначала нажмите BACKUP свойства.)

  • Перейдите в "Свойства LaunchImage" (нажмите кнопку со стрелкой справа) и заполните изображения из одной из ваших *.lproj-папок. enter image description here

  • Теперь перейдите в папку "LaunchImage", которая содержит изображения и файл "Contents.json" . enter image description here

  • Удалите ВСЕ добавленные ИЗОБРАЖЕНИЯ, но сохраните файл Content.json(и его содержимое).

  • Проверьте "Contents.json" , он должен содержать такие свойства, как изображение ниже enter image description here

Двойная проверка следующих элементов:

  • Локализованные изображения запуска в папках ресурсов (ru.lproj, ja.lproj и т.д.)

  • * - info.plist содержит свойства "UILaunchImages"

  • В настройке проекта используется ресурс изображения для изображений запуска

  • "Contents.json" в папке с активами LaunchImage, а папка НЕ имеет действительно имеет изображения запуска

Теперь вы можете попробовать локализованные изображения запуска и отправить двоичный файл в iTunes Connect. В нашем приложении обходной путь действительно работал для " локализованных изображений запуска" и " представление успешно".

Это должно быть трюк, чтобы избежать ошибки при проверке отправки.

Так как обходной путь выше не изменяет никакого ресурса, кроме того, что проверка проверяет, что мы используем имидж-ресурсы, мы более убеждены, что в проверке Apple есть некоторые ошибки.

Ура!

Ответ 2

Это случилось со мной. Поскольку iOS6 (я думаю), если вы локализируете свое приложение, вы должны быть согласованным до конца. У вас есть английский, голландский и французский языки, как я вижу на экране. Вы должны иметь эти языки в любом месте, где вы выполняете локализацию. Файлы вашей строки локализации должны иметь все эти языки, но не больше языков. Я получил тот же ответ, когда я использовал библиотеку AppiRater для приложения. AppiRater имеет сообщения на многих языках, и мое приложение локализовано только для двух языков. Поэтому мне пришлось удалить все остальные строковые файлы из AppiRater, кроме 2, которые мне нужны. Как только я это сделал, все прошло хорошо.

Итак, короткий ответ: удалите любые дополнительные файлы локализации, которые вам не нужны, и добавьте файлы локализации, отсутствующие в вашем приложении.

Ура!

Редактировать danielgindi

Это действительно работает, несмотря на некоторые утверждения, что этот ответ не имеет значения. Это случилось со мной, когда я начал использовать базовую локализацию в приложении, и у нее все еще были некоторые ресурсы, локализованные в папке en.lproj, включая Default.png s.

Таким образом, вы можете либо убедиться, что у вас есть файл [email protected] во всех папках локализации, которые вы используете, или удалить локализации, которые вы не используете. Я только что переместил все, чтобы быть в Base.lproj, так что это ясно, что он делает, и нет дубликатов.

Ответ 3

Быть более прозрачным:

  • Измените исходный образ запуска на "Запуск изображения" (выполните шаги 1-3 в ответе @Charlie Hung).

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

  1. Щелкните правой кнопкой мыши на своем проекте и выберите "Показать в Finder"
  2. Найдите папку Assets.xcassets и откройте ее
  3. Откройте папку LaunchImage.launchimage и переместите два изображения в свою папку .Iproj, которую вы найдете в своем проекте. (Мой назывался Base.Iproj).

Наконец, добавьте это в свой info.plist(открыть в текстовом редакторе):

<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>

Это все, что я должен был сделать.

Ответ 4

В моем случае я обновлял более старое приложение. Оказалось, что мне не хватает файла значка с именем: [email protected] с размерами 320x568. Я нашел это, просмотрев предупреждения. Я создал файл, добавил его в свой проект с другими файлами значков, и он работал нормально.

Надеюсь, что кто-то помог: -)

Ответ 5

Сделайте то, что рекомендуют Чарли и Дан, и убедитесь, что имена ваших файлов изображений не имеют никаких тире в нем. Моя работа не работала, пока я не переименовал файлы как буквенно-цифровые.

Ответ 6

Я получил ту же ошибку, но в моем случае у меня не было файла раскадровки (xib) для изображения запуска, которое необходимо:

"Вы используете стартовый XIB или файл раскадровки , чтобы указать, что ваше приложение работает на iPhone 6 Plus или iPhone 6." (см. здесь)

Я выполнил этот учебник, чтобы создать его: https://developer.xamarin.com/recipes/ios/general/templates/launchscreen-xib/

Для шага 9 туриона, в Info.plist, я установил:

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

info.plist добавляет ключевой образ запуска и файл строки раскадровки

Просто чтобы убедиться, что при запуске приложения вы должны увидеть изображение своего запуска перед загрузкой. После этого я смог загрузить приложение в магазин приложений.

Шаги, показанные выше в других ответах, также важны: "Если вам также необходимо поддерживать более ранние версии iOS, вы можете продолжать статические изображения запуска в дополнение к файлу запуска". (см. здесь)

Надеюсь, что это поможет.

Ответ 7

Я получил ту же ошибку в среде развертывания 9.3 и swift 2.3, и в моем случае у меня не было файла раскадровки (xib) для образа запуска, который необходим, и моя конфигурация была неправильной в настройках проекта, см. изображение ниже:

Изображение настроек

Ответ 8

Может быть, это полезно для некоторых парней: просто измените iOS Deployment Target с 7.0 до 8.1 или выше.

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

Я столкнулся с этой проблемой, когда хочу загрузить приложение в магазин приложений, созданный response-native 0.37, а его по умолчанию iOS Deployment Target - 7.0.