Можно ли ориентироваться на более старые версии iOS при использовании Xcode 4.2 и iOS 5 SDK? - PullRequest
103 голосов
/ 14 октября 2011

Я только что скачал пакет Xcode 4.2 с iOS 5 SDK и сразу заметил, что не могу использовать iPhone 3Gs с iOS 4.2.1 для отладки.Я могу только отлаживать и тестировать на своем iphone 4 с установленной iOS 5.

Для любого из моих устройств под управлением любой iOS менее 5.0 Xcode просто говорит «Закончено работать для iPhone3GS» и не запускается.У меня установлена ​​цель развертывания 3.0, потому что я не использую никаких функций в своем приложении выше 3.0, и я хочу иметь возможность ориентироваться на все версии 3.0 или выше.У меня все профили инициализации установлены и обновлены.

Я вышел и перезапустил xcode, несколько раз чистил сборку.Я попытался добавить armv6 в настройках сборки archtecture, но ничто не позволит мне собрать и запустить мое приложение на моем старом телефоне с ios 4.2.1.

Мой вопрос заключается в том, можно ли по-прежнему заставить приложения с новым SDK работать для версий iOS ниже 5?Как я могу быть уверен, что мое приложение все еще будет работать на более низких версиях iOS, если я не смогу установить их на свой старый телефон?

Редактировать: ОК, похоже, iOS SDK5 упала поддержка armv6 по умолчанию.Что вам нужно сделать, это добавить armv6 в поле «Архитектуры» в разделе «Настройки сборки» как для вашей цели, так и для вашего проекта.Тогда ваше приложение сможет работать на устройствах iPhone 3G.Ответ можно найти здесь Как собрать архитектуру для armv6 и armv7 с iOS 5

Ответы [ 8 ]

152 голосов
/ 14 октября 2011

У меня возникла та же проблема при попытке запустить недавно созданный проект Xcode 4.2 на iPhone 3G 4.2.1.Вот как я смог заставить его работать.

1) Измените «Настройки сборки» цели ==> «Архитектура» цели с «Стандарт (armv7)» на «другое».Добавьте armv6 и armv7.

2) Измените «Настройки сборки» цели ==> «Действующая архитектура» на armv6 и armv7.

3) Измените «Настройки сборки» цели ==>«Цель развертывания iOS» для iOS 4.2.

enter image description here

4) Откройте проекты * -Info.plist, удалите параметр «Необходимые возможности устройства» (обратите внимание, что требуется armv7) enter image description here

Кстати, я понял это, когда попытался вручную добавить приложение через органайзер, и он сообщил:

Невозможно установить приложение

Информация.plist для приложения в /Users/.../TestsDebug.app определяет требования к возможностям устройства, которые не удовлетворяются Dev iPhone 3G

Все должно работать после этого.Поговорим о пите.

12 голосов
/ 14 октября 2011

Перейдите на XCode> Настройки> Загрузки и установите поддержку отладки для более старых версий iOS.

3 голосов
/ 18 ноября 2011

мморрис приблизил меня к решению проблемы ... В Info.plist мне нужно было установить для Требуемые возможности устройства значение armv6, а не armv7. Надеюсь, это поможет и другим.

1 голос
/ 12 июля 2012

Я столкнулся с аналогичной проблемой при попытке запустить приложение на старом iPod Touch.Я обновился до Xcode 4.3.3, и приложение больше не будет работать в отладчике для меня на более старом оборудовании.

Я считаю, что другие комментарии здесь о «Архитектурах» и «Необходимых возможностях устройства» являются важными деталями, которые необходимо указатьправильно.К сожалению, их было недостаточно, чтобы решить мою проблему.

В моем случае я нашел виновной схему сборки.Xcode 4.3.3 побудил меня переключиться с отладчика GDB на LLDB, когда он обновил мой проект.Когда я изменил действие «Выполнить» моей схемы обратно на GDB , я смог снова запустить приложение на моем старом оборудовании из Xcode.

1 голос
/ 12 декабря 2011

Я узнал, что мне нужно было добавить armv6 к архитектурам, но все равно не сработало.И теперь я удалил armv7 из необходимых возможностей, и все!Это сработало!

1 голос
/ 14 октября 2011

Вам необходимо подключить телефон и затем перейти к органайзеру. Xcode должен автоматически запросить старую версию.

См. Страницу разработчика для получения дополнительной информации. Это было описано в примечаниях для 4.2 бета

0 голосов
/ 13 февраля 2015

В моем случае была указана избыточная строка в Обязательные возможности устройства enter image description here

Я только что удалил ее ...

enter image description here

Надеюсь, это поможеткто-то еще.

0 голосов
/ 11 февраля 2013

Это сработало для меня и должно работать для вас, если у вас ранее была более старая версия Xcode. Если нет, то вам следует следовать советам, данным другими для получения SDK из более старой версии SDK:

sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0. * 1003 SDK *

Эта команда лишь немного отличается от показанной другими, но эти команды для меня отбросили файлы в самой папке SDK - мы хотим, чтобы ее подкаталог создавался с соответствующим именем.

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