Как указать Xcode на старый SDK, чтобы он мог использоваться как "базовый SDK"?
Моя настройка Mac:
Том A:
OS X 10.8
Xcode 4.5 или новее - 10.6 SDK НЕ доступен в качестве базового SDK
Том B:
OS X 10.7
Xcode 4.3.3 - 10.6 SDK IS, доступный как базовый SDK
Объем C:
OS X 10.6
Xcode 4.2 - 10.6 SDK IS доступен как базовый SDK
В томе A я установил Xcode 4.5, который не включает 10.6 SDK в качестве доступного "базового SDK" в настройках сборки Build Targets.
У меня есть отдельный том 10.6 и 10.7 на этом жестком диске - оба из которых имеют Xcode, и оба из них позволяют мне выбрать 10.6 SDK в качестве базового SDK в настройках сборки для Xcode Build Targets.
Я знаю, что у меня установлен SDK 10.6 на томе C (в /Developer/SDKs
из старой установки Xcode).
Как я могу указать Xcode на томе A на 10.6 SDK, который живет на Volume C?
Ответы
Ответ 1
Вам нужно добавить символическую ссылку на старый SDK (это, как правило, проще, чем копирование).
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 в каталоге верхнего уровня /SDK. Таким образом, каждый раз, когда я обновляю его, легко все исправить.
EDIT: у меня есть fix-xcode script, который упрощает повторное применение этого исправления каждый раз при обновлении Xcode.
UPDATE: в современных версиях Xcode (7.3+) для использования старых SDKs edit MinimumSDKVersion
здесь:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist
Ответ 2
Неправильный подход. Вы не указываете Xcode на SDK. Вместо этого вам удастся скопировать SDK в соответствующую папку "SDK" для установки Xcode. В современных установках Xcode это обычно:
Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
Скопируйте SDK там, закройте и перезапустите Xcode и посмотрите, что вы найдете.
(чтение другого ответа здесь, я думаю, что символическая привязка может быть вариантом, если вы мертвы, сохраняя исходный SDK в другом месте)
Ответ 3
Почему не просто символическая ссылка на SDK? "ln -s"? Если это не сработает, потребуется какой-то взлом для взлома.
Ответ 4
Решено, просмотрев более старую версию Xcode.App/Developer/platforms и скопировав iOS 6.1 SDK в ту же папку XCode 5.