Подтвердить что ты не робот

Как развернуть проект с базой SDK 6.1 для iOS на устройстве с iOS 7

Я потратил весь свой день на эту проблему и не смог найти решение: Я разрабатываю приложение с iOS 6.1 SDK, и весь дизайн зависит от интерфейса iOS 6.1. Вчера я обновил свой телефон до iOS 7, и после завершения обновления ранее развернутое приложение, которое вернулось из резервной копии, выглядело и работало так же, как и раньше (на iOS 6.1); все было отлично. Однако мне пришлось обновить Xcode до версии 5, поэтому я могу продолжить развертывание последовательных отладочных версий на моем устройстве iOS 7 во время разработки. Перед обновлением до Xcode 5 я выполнил резервное копирование пакета iPhoneOS6.1.sdk из внутренней папки Xcode; затем обновлен до Xcode 5, а затем поместил пакет iPhoneOS6.1.sdk обратно в свою папку рядом с iOS 7 SDK, который поставляется с установкой Xcode 5. Я переключил свой SDK проекта на iOS 6.1, который появился в базовом списке селекторов SDK, и удостоверился в построителе интерфейса, что все мои раскадровки /XIB настроены на сборку как iOS 6.1.

Однако, когда я разворачиваю приложение на свой телефон, он выглядит как дерьмо, как показано с элементами интерфейса iOS 7. Если я использую устройство с установленным iOS 6.1, все выглядит нормально; похоже, что XCode не проклинает мой выбор базового SDK и связывает приложение с iOS 7, если я захочу отлаживать устройство iOS 7.

Как я могу заставить Xcode развернуть те же связанные с 6.1 элементы на всех устройствах, независимо от установленной версии iOS?

4b9b3361

Ответ 1

Найти и загрузить старый SDK. Старые SDK находятся здесь, https://developer.apple.com/downloads/index.action?name=Xcode

Я скопировал каталог xcode.app как Xcode_4.6.3.app. Теперь вы можете тестировать и отлаживать обе версии xcode. Вы должны запускать их из соответствующих папок или создавать ярлыки на рабочем столе. Когда я строю из командной строки, я предоставляю параметр как iPhoneOS6.1 вместо iPhoneOS7.0

Это отлично подойдет для меня в Xcode5 и iOS. Перейдите в каталог Xcode5 SDK. Добавьте символическую ссылку на старый SDK следующим образом:

ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

Ответ 2

В панели инструментов Xcode 5 для вашей цели вы увидите, что ваше устройство указано дважды (вы также упомянули об этом в своем вопросе). По какой-то странной причине вы строите внешний вид iOS 6.x, а другой - внешний вид iOS7. Попытка создания/работы на одном из устройств из этого списка. Если вы все еще видите внешний вид iOS7, нажмите кнопку "Стоп" на панели инструментов, выберите другое устройство и снова создайте.

Я не вижу сбоев в Xcode 5, поэтому вам может понадобиться переустановить, если он много сбой для вас.

Ответ 3

Во-первых, вам нужно будет скопировать и вставить iOS 6.1 SDK из предыдущей версии XCode. Я считаю, что другие люди дали инструкции о том, как это сделать.

Затем, предполагая, что вы намерены продолжить разработку для iOS 6 (например, не нарушая пользовательский интерфейс iOS 6, и вы не собираетесь использовать новые API), сделайте следующее:

  • XCode должен распознавать 2 устройства каждый раз, когда вы подключаете устройство iOS 7 к компьютеру.
  • Запустите приложение на обоих из них (они на самом деле являются одним и тем же устройством, но один из них будет запускать iOS 6-стиль приложения, а другой попытается обновить его до iOS 7-стиля)
  • Помните, что у меня работает iOS 6-стиль (для меня он самый верхний) и выполняйте Product > Archive на этом устройстве

Это должно позволить вам создавать ваши приложения с пользовательским интерфейсом iOS 6, в то же время позволяя использовать Xcode 5. Я бы рекомендовал начать новую ветку разработки исключительно для изменений пользовательского интерфейса, чтобы получить приложение UI iOS для вашего приложения совместимы.