Вопрос по macos, sdk, xcode, xcode4, xcode5 – Как указать Xcode на старый SDK, чтобы его можно было использовать в качестве «базового SDK»?

33

Настройки моего Mac:

Volume A:
OS X 10.8
Xcode 4.5 или более поздняя версия - 10.6 SDKIS NOT доступный как Базовый SDK

Volume B:
OS X 10.7
Xcode 4.3.3 - 10.6 SDKIS доступный как Базовый SDK

Volume C:
OS X 10.6
Xcode 4.2 - 10.6 SDKIS доступный как Базовый SDK

На томе А я установил Xcode 4.5, который не включает 10.6 SDK в качестве доступного «Базового SDK». в моих целях сборки & apos; Настройки сборки.

У меня есть отдельный том 10,6 и том 10,7 на этом жестком диске - на обоих установлен Xcode, и оба позволяют мне выбрать 10,6 SDK в качестве базового SDK в моих целях сборки Xcode & apos; Настройки сборки.

Я знаю, что у меня установлен том 10,6 SDK на томе C (в/Developer/SDKs от более старой установки XCode).

Как я могу указать XCode на Томе A на 10.6 SDK, который живет на Томе C?

Ваш Ответ

4   ответа
0

перейдя к более старой версии Xcode.App/Developer/platforms и скопируйте iOS 6.1 SDK в ту же папку XCode 5.

85

е, чем копирование).

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
ln -s /path/to/old/SDK .

Это прекрасно работает до 10,5. Помимо этого все становится немного сложнее ...

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

Лично я часто храню / path / to / old / SDK в каталоге верхнего уровня, который называется / SDKs. Таким образом, каждый раз, когда я обновляю, все легко исправить.

РЕДАКТИРОВАТЬ: У меня естьфикс-Xcode скрипт, который упрощает повторное применение этого исправления при каждом обновлении XCode.

ОБНОВЛЕНИЕ: В современных версиях Xcode (7.3+) для использования старых SDK правитьMinimumSDKVersion Вот:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
Обратите внимание, что XCode не отображает различные SDK. имена. Вы получаете несколько вариантов с одним и тем же именем. Методом проб и ошибок найдите, какой из них вам нужен.
Спасибо, Роб. Отлично. Todd Ditchendorf
Это удивительный совет. Работает и для iPhoneOS, просто перейдите на соответствующие пути
Запустив Xcode 5.0.1 на Mavericks, мне пришлось скопировать SDK, а не символическую ссылку, чтобы он заработал. Похоже, он не хотел следовать символической ссылке. Может быть, это вопрос безопасности?
Это отлично работает для меня в Xcode5 и iOS. Мои шаги: перейдите в каталог SDK для Xcode5. Добавьте символическую ссылку на старый SDK следующим образом:ln -s /Applications/Xcode4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk Используя этот метод, Xcode отображает имя старого SDK в списке вместе с самым новым SDK.
20

ам повезет, скопировав SDK в соответствующие & quot; SDKs & quot; папка для установки Xcode. В современных установках XCode это обычно:

Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

Скопируйте туда SDK, выйдите и перезапустите Xcode и посмотрите, что вы найдете.

(читая другой ответ здесь, я думаю, что символическое связывание может быть вариантом, если вы не можете сохранить оригинальный SDK в другом месте)

Я не согласен - добавление фактического SDK сводится к нулю при крупных обновлениях. Хранение старых SDK вокруг корневого уровня - более надежный и долгосрочный вариант.
Спасибо Даниэль, именно то, что мне было нужно. Я не знал, куда ушла папка SDK. Должен был догадаться, что он хранился в Xcode.app в эти дни. Todd Ditchendorf
Я нашел это как более простое решение, чем попадание в smylink, как предлагает Роб Нейпир. Мне нужна была только 6.1, так как 7.0 только что вышел и взорвал интерфейс моего приложения на основе 6.0.
0

ln -s & quot ;? Если это не сработает, то потребуется некоторый взлом списков.

Да, но проблема была в том, что я даже не знал, где это символическая ссылкаto, Не беспокойтесь, другие ответили с информацией, которая мне нужна. Todd Ditchendorf

Похожие вопросы