Минимальная проблема версии в iphone SDK 3.0 - PullRequest
2 голосов
/ 11 мая 2009

Я установил последнюю версию iphone SDK 3.0 бета 5 и пытаюсь отправить первую сборку приложения с этого SDK, но когда я загружаю в itunes соединение, мне выдается сообщение «Загруженный вами двоичный файл недействителен. Указанное значение для ключа MinimumOSVersion не допускается. " и не может быть загружен. поэтому я редактирую свой файл info.plist в проекте и устанавливаю этот ключ на 2.2.1, например

 <key>MinimumOSVersion</key>
 <string>2.2.1</string>

и загрузите снова, но он все еще возвращает то же сообщение, кто-нибудь сталкивался с такими же проблемами и как избавиться от этого?

Ответы [ 7 ]

7 голосов
/ 21 апреля 2010

Вы НЕ ДОЛЖНЫ указывать MinimumOSVersion в вашем Info.plist. Из справочника свойств списка Ключ информации :

MinimumOSVersion (строка - iPhone OS, Mac OS X). Когда вы создаете приложение для iPhone, Xcode отмечает целевую ОС (как определено выбором Base SDK) как свойство MinimumOSVersion. Не указывайте это свойство самостоятельно в файле Info.plist; это системное свойство. Когда вы публикуете свое приложение в App Store, в магазине указывается версия iPhone OS, на которой ваше приложение может работать, основываясь на этом свойстве. Это эквивалентно свойству LSMinimumSystemVersion в Mac OS X.

2 голосов
/ 10 сентября 2009

Что вам нужно сделать, это изменить настройку цели развертывания в вашем проекте. Цель развертывания определяет минимальную ОС, на которой вы хотите, чтобы ваше приложение работало. Это независимо от того, какой SDK вы используете, который всегда должен быть самым последним SDK, чтобы вы могли убедиться, что ваше приложение работает правильно на самой последней доступной версии ОС. Итак, вкратце:

  • Установите базовый SDK для последней доступной ОС
  • Установите целевой объект развертывания на самую раннюю ОС , на которой вы хотите запускать свое приложение.

Ручное редактирование файла Info.plist на самом деле просто обманывает App Store, заставляя его думать, что ваше приложение может работать в ОС, в которой он не создан, что может привести к непредсказуемым результатам.

1 голос
/ 07 сентября 2010

Я получил эту ошибку, когда наконец обновил вещи с 2.2.1 до 4.0 SDK и попытался использовать существующий проект.

Мне пришлось:

  1. Нажмите на проект в XCode, затем нажмите на Info.
  2. Нажмите «Построить»
  3. Обратите внимание на то, какую «Конфигурацию» вы настраиваете. Вы случайно устанавливаете дистрибутив при попытке отладки?
  4. Установите для базового SDK максимально возможное значение.
  5. Измените «Семейство целевых устройств» на все, что вы делаете.
  6. Установите «Цель развертывания iPhone OS» на ОС вашего устройства (вы можете проверить, перейдя в «Окно»> «Органайзер»).

Мой основной приемник времени устанавливал мои параметры распространения при попытке отладки и не осознавая этого.

1 голос
/ 31 мая 2009

У меня была такая же проблема. Вот как это исправить!

Мой проект назывался SuperTennis, поэтому я щелкнул проект в xcode и нажал Get Info. На вкладке «Общие» измените «Базовый SDK для всех конфигураций iPhone» на iPhone OS 2.0, затем перейдите на вкладку «Сборка» и измените «Базовый SDK» на «iPhone OS 2.0», затем создайте его для своего устройства. Откройте приложение в Finder, а затем продолжите, чтобы загрузить его. Напишите мне на ryan2925 на gmail.com, если вам нужна дополнительная помощь. Я надеюсь, что это работает для вас и всех, кто читает.

1 голос
/ 11 мая 2009

Пожалуйста, прочтите уведомление в центре разработчиков iPhone. Вы НЕ МОЖЕТЕ использовать iPhone 3.0 SDK для создания приложений для App Store в настоящее время, даже если вы компилируете их для ОС 2.x. Вы должны скомпилировать приложение, используя 2.x SDK, чтобы отправить его в App Store.

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

0 голосов
/ 17 августа 2010

Попробуйте это:

ARMV6: before iPhone 3GS
ARMV7: including and after iPhone 3GS

"Proj." and "Target(s)" right-click, Get Info. Select:-

Base SDK: iPhone 4.0 (latest s greatest)
Standard: ARMV6, ARMV7
Uncheck build for Active Architecture 
Deployment Target: 4.0 (not older ones 3.1.3; you don't have the SDK if you upgrade to 4.0)
Compiler section: Ensure that both ARMV6 and ARMV7 checkboxes are ticked under Generate Code, Thumb section.

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

Если вы хотите поддерживать только ARMV7, не проверяйте ARMV6 в разделе компилятора, код выбора оптимизирован для ARMV7, проверьте только активную архитектуру В info.plist добавьте armv7 в UIRequiredDeviceCapabilities пунктов. Это поле уже существует в info.plist и, вероятно, имеет другие системные требования, автоматически определенные.

0 голосов
/ 11 мая 2009

Щелкните правой кнопкой мыши по своему проекту и перейдите на вкладку сборки. В верхней части списка вы можете указать свой базовый SDK. Это минимум, с которым вы будете компилировать. После этого ваши выпадающие настройки будут иметь более старые версии. Когда вы отправляетесь в дистрибутив, убедитесь, что вы не используете причину 3.0, которая приведет к отклонению вашего бинарного файла (как вы узнали).

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