Ответ 1
Быстрый ответ: Да, мы можем!
Прежде чем перейти к части "как это делается", вот несколько заметок о моем патче/хаке/исправлении. С самого начала основными целями были:
-
Сохраняйте все изменения в абсолютном минимуме.
Мы хотим, чтобы настройки Xcode были как можно более оригинальными. -
Во что бы то ни стало, старайтесь избегать патчей или изменения любых файлов.
Мы хотим, чтобы все файлы остались нетронутыми и сохранили исходный контент. -
Старайтесь не перемещать и не копировать файлы, если это абсолютно необходимо.
Я смог сохранить все эти цели. Почти все делается путем создания символических ссылок. Только одна существующая символическая ссылка должна была быть заменена, и мы обязательно ее резерв перед заменой на всякий случай.
Если вы не являетесь экспертом в терминальных операциях, я настоятельно рекомендую вам скопировать/вставить все команды терминала из моего ответа на ваш терминал, чтобы избежать опечаток. Имейте в виду, что даже интервал, цитирование и особенно капитализация могут быть важными. Скопируйте/вставьте их по строкам, не более одной строки за один раз и нажмите return после каждой вставленной строки, чтобы выполнить команду. Если какая-либо операция подсказывает вам пароль, это будет пароль текущего пользователя в системе (ваши нажатия клавиш не отображаются во время ввода, это нормально, не волнуйтесь, просто продолжайте вводить пароль и нажимать return; -try, если у вас была опечатка и снова получите приглашение).
Предпосылка
Прежде чем мы начнем, убедитесь, что выполняются следующие условия:
- Вы вошли в систему как пользователь-администратор.
- Вы запустили Terminal.app(Приложения/Утилиты) и открылось окно терминала.
- У вас есть копия образа Xcode3 (например, 3.2.5) и образа Xcode4 (DMG) или установщика.
- Если у вас уже установлена версия Xcode, рассмотрите возможность ее удаления вначале, чтобы начать с новой/чистой настройки. Удаление Xcode не приведет к удалению ваших предпочтений, цветовой схемы или настроек привязки ключей. В идеале вы должны начать с системы, в которой не установлена версия Xcode (ни 3, ни 4).
Шаг 1: Установка Xcode3
Важно. Не устанавливайте пакет "Системные инструменты" или "Unix Development" Xcode3.
Хотите ли вы установить "Mac OS X 10.4 SDK" и/или "Документацию" зависит от вас. Если это Xcode3 с SDK iOS, независимо от того, устанавливаете ли вы эти или нет, также зависит от вас.
Вы можете выбрать любую папку назначения для своей установки. Для этого руководства я выбрал "/Xcode3", но не стесняйтесь выбирать другой. Просто убедитесь, что все команды терминала изменены соответствующим образом.
Порядок шагов, приведенных здесь, обычно не очень важен, но я настоятельно рекомендую не менять первый и второй шаги. Xcode всегда устанавливает пару файлов вне выбранной папки назначения и доверяет мне, в конце вам нужны версии Xcode4 этих файлов на вашем диске. Установив Xcode3 перед Xcode4, вы можете быть уверены, что Xcode4 перезапишет эти файлы, если это необходимо. Я когда-то менял местами шаги 1 и 2, и в конце концов у меня были некоторые довольно странные проблемы, которые могли быть связаны с неправильным порядком (я не могу сказать точно, но после повторной установки в правильном порядке проблемы исчезли).
Шаг 2: Установка Xcode4
Выберите любые понравившиеся вам пакеты. Установка "Системных инструментов" рекомендуется, но не обязательно (хотя большинство людей рано или поздно пропустит эту функциональность).
Снова, не стесняйтесь выбирать любую целевую папку, которая вам нравится. В этом руководстве я выбрал обычную целевую папку "/Developer", если вы используете другую, измените все команды терминала.
Шаг 3: Восстановление поддержки 10.4/10.5 SDK
Перейдите в окно терминала и выполните следующие команды:
cd /Developer/SDKs sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk . sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk .
Конечно, запустите только команду 10.4u, если вы также установили SDK 10.4 на шаге 1.
Этого достаточно, чтобы вернуть SDK 10.5 (и, возможно, 10.4) обратно в список выбора в Xcode4. Попробуйте, если хотите. Запустите Xcode4, откройте проект, попробуйте изменить выбранный SDK. Это было легко, да? Не забудьте снова закрыть Xcode4 (приложение, а не только окно), прежде чем приступать к следующему шагу.
Шаг 4: Восстановление поддержки GCC 4.0
Если вы не установили SDK MacOS 10.4 или если вы не планируете использовать его, вы можете спокойно пропустить этот шаг и перейти к шагу 5.
Чтобы использовать SDK 10.4, вам нужно будет использовать GCC 4.0, GCC 4.2 не будет работать. Apple утверждает, что GCC 4.2 не совместим с SDK 10.4, ну, если вы спросите меня, это мистификация. Я уже переписал эти ограничения более одного раза, и из-за этого никогда не было ни малейшей проблемы. Было бы легко изменить SDK 10.4, так что Xcode позволит вам использовать GCC 4.2 для него, но моя цель состояла в том, чтобы избежать всех модификаций файлов, поэтому мы просто добавляем поддержку GCC 4.0 обратно в Xcode, что тоже хорошо, потому что некоторые проекты на самом деле зависят от GCC 4.0 (например, в GCC 4.2 есть некоторые ошибки, которые предотвращают корректный код встроенной сборки для компиляции без ошибок, в то время как тот же код отлично компилируется на GCC 4.0 и GCC 4.4).
Вернуться к терминалу:
cd /Developer/usr/bin sudo ln -s /Xcode3/usr/bin/*4.0* . cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10 sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1 .
В настоящий момент мы восстановили полную поддержку GCC 4.0, за исключением того факта, что GCC 4.0 по-прежнему не выбирается в Xcode4. Это связано с тем, что Xcode4 больше не имеет подключаемого модуля компилятора GCC 4.0. К счастью, подключаемый модуль Xcode3 также работает в Xcode4, только позиция радикально изменилась. Apple теперь скрывает эти плагины глубоко внутри пакета, и только плагины там, похоже, работают, помещая их в прежнее положение, кажется, не имеют никакого эффекта.
cd /Developer/Library/Xcode/PrivatePlugIns cd Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins sudo ln -s "/Xcode3/Library/Xcode/Plug-ins/GCC 4.0.xcplugin" .
Теперь снова запустите Xcode4, откройте проект и попробуйте выбрать компилятор. У вас должен быть GCC 4.0 в списке. Теперь вы уже можете выбрать SDK 10.4 или 10.5, GCC 4.0, и у вас не должно возникнуть проблемы с созданием бинарного кода PPC. Просто выберите "Другое..." для параметра "Архитектура" и вручную введите "ppc", затем измените "Действительные архитектуры", чтобы также включить "ppc". Мы почти закончили, за исключением того, что попытка создания бинарной базы PPC с использованием GCC 4.2 и SDK 10.5 будет по-прежнему терпеть неудачу.
Шаг 5: Восстановление поддержки PPC для GCC 4.2
Поскольку Apple поддерживает платформы Intel только в Xcode4, не все инструменты GCC 4.2 были созданы с поддержкой PPC. Существует один важный инструмент, который не поддерживает PPC, инструмент называется "как", и это ассемблер GNU. Чтобы скомпилировать двоичные файлы ppc/ppc64 с GCC 4.2, нам нужно использовать "как" версию с поддержкой ppc/ppc64. Это единственный и единственный файл (на самом деле это также символическая ссылка), прежде чем мы заменим его символической ссылкой:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1 sudo mv as as.bak sudo ln -s /Xcode3/usr/bin/as .
Шаг 6: Нет шага 6
Что все люди. Учитывая, насколько это легко, вы можете себе представить, что Apple, безусловно, не отказалась от поддержки SDK 10.4/10.5 или ppc/ppc64 или GCC 4.0, потому что это было необходимо, они отказались от всего этого, потому что хотели его сбросить.
Я надеюсь, что эта настройка работает и для вас, как и для меня. Я смог скомпилировать все мои старые проекты в Xcode4 без каких-либо серьезных изменений, кроме необходимости изменять путь поиска здесь и там.
PS:
Может показаться странным, что я отвечаю на свой собственный вопрос здесь, но поскольку я выяснил, как решить эту проблему самостоятельно, я хотел бы поделиться своими знаниями с сообществом, потому что я считаю, что это действительно ценный вклад во все MacOS разработчиков там. Этот вопрос задавали так много раз в стольких местах, и до сих пор я никогда не видел, чтобы кто-то придумывал аналогичные исправления. Поделитесь богатством, распространите знания и т.д., Вы знаете, что я имею в виду.
Если у вас все еще есть вопросы/вопросы:
Если у вас есть дополнительные вопросы по этой теме или у вас все еще есть проблемы для правильного создания старых проектов, сделайте то, что было разработано для Stack Overflow: Нажмите "Задать вопрос" в правом верхнем углу этой страницы и создайте новый вопрос. Таким образом, все сообщество может помочь вам решить эти проблемы, поскольку проблемы могут быть напрямую (возможно, даже косвенно) связаны с этим хаком.
Я бы порекомендовал вам упомянуть тот факт, что вы применили этот хак в самом начале вашего вопроса. Может быть, вы даже хотите напрямую связаться с этим вопросом, чтобы люди, которые никогда не слышали об этом хаке, могут легко найти его. В противном случае большинство людей будут путаться, если упомянуть SDK 10.4/10.5, PPC или GCC 4.0 в сочетании с Xcode4, который официально не поддерживает ни один из них. Вы можете получить довольно глупые комментарии вместо достойных ответов, если вы забыли упомянуть этот хак.
Пожалуйста, воздержитесь от размещения своих вопросов или вопросов здесь либо в качестве ответов, либо как комментарии. Опубликовать их в качестве ответов не имеет смысла, потому что они не являются ответами, и нет способа, как люди могут ответить вам, а затем использовать комментарии и комментарии могут не предоставить достаточно места для достойного ответа на ваш вопрос или достойного решения для вашего проблема. И размещение их в качестве комментариев означает, что вы ограничены очень маленькими комнатами, а комментарии с комментариями по отслеживанию будут сложными, поскольку комментарии не имеют иерархии деревьев (в дальнейшем они все равно будут предлагать мало места для достойных ответов/решений). Спасибо.
Конечно, другие комментарии, а также лучшие ответы на исходный вопрос всегда приветствуются; -)