(XCode 4.0.2) Сборка архива (сборка для распространения в магазине приложений) предупреждение armv6 - PullRequest
2 голосов
/ 09 мая 2011

Клянусь, я близок к окончательной отправке приложения с XCode 4.0.2.Но я боюсь, что натолкнулся на довольно крутое препятствие, чтобы преградить ему путь.

Независимо от того, что я делаю, я всегда получаю 1-2 предупреждения, связанные с архитектурой armv6.Я установил настройки сборки Project и Target для использования:

  • Архитектура : Стандартная (armv6 armv7)
  • Базовый SDK : последниеiOS 4.3
  • Сборка только активных архитектур : проверено или отключено, кажется, не имеет значения)
  • Поддержка платформ для распространения : iphoneos
  • Допустимые архитектуры : armv6 armv7

При архивировании (для распространения в магазине приложений) я всегда получаю следующие предупреждения:

  • iphone appsдолжна включать архитектуру armv6 (текущая ARCHS = "armv7").
  • iPhone / iPod Touch: в исполняемом файле приложения отсутствует требуемая архитектура.Должна присутствовать хотя бы одна из следующих архитектур: armv6 (-19033)

Пожалуйста, помогите.

* ОБНОВЛЕНИЕ *

Просто прочитайте где-нибудь, что для базового SDK нужно установить iOS 4.0 вместо «Последняя iOS (iOS 4.3)».Он построен / архивирован без предупреждений.

* ОБНОВЛЕНО СНОВА *

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

Ответы [ 2 ]

5 голосов
/ 09 мая 2011

Убедитесь, что настройки сборки в XCode.

  • «Архитектура» должна быть «Стандартная (armv6 armv7)»
  • «Только активная архитектура» должна быть «НЕТ».
  • «Действительными архитектурами» должно быть «armv6 armv7».

Он может проверять двоичный файл архивированного приложения с помощью команды file.

$ file Payload/Foo.app/Foo
Payload/Foo.app/Foo: Mach-O universal binary with 2 architectures
Payload/Foo.app/Foo (for architecture armv6):   Mach-O executable arm
Payload/Foo.app/Foo (for architecture armv7):   Mach-O executable arm
0 голосов
/ 14 июня 2012

Я получил ту же ошибку на старом приложении, построенном с XCode 3, но пришлось перестроить год спустя для XCode 4.

ВСЕ ЭТИ НАСТРОЙКИ БЫЛИ ОДНОВРЕМЕННЫ:

"Architectures" should be "Standard (armv6 armv7)"
"Build Active Architecture Only" should be "NO".
"Valid Architectures" should be "armv6 armv7".

Я проверил двоичный файл архивированного приложения с помощью команды file.

$ file MyApp

НЕ ВОЗВРАЩАЕТСЯ ДВЕ ЗАПИСИ

Payload/Foo.app/Foo: Mach-O universal binary with 2 architectures
Payload/Foo.app/Foo (for architecture armv6):   Mach-O executable arm
Payload/Foo.app/Foo (for architecture armv7):   Mach-O executable arm

НО ОДИН

$ file MyApp
MyApp: Mach-O executable arm

Я видел «универсальный двоичный файл» в вышеприведенном стековом потоке, поэтому понял, что приложение никогда не было создано для iPad.

Мне пришлось сменить iPhone на Универсальный.

Project > My App Target > Summary Tab > Devices drop down
Change from iPhone to Universal.

Это будет как копировать MainWindow на MainWindow-iPad.

Я еще не планировал выпуск версии для iPad, поэтому сказал нет.

Я снова сделал Архивирование, и приложение Validate работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...