Быстрый ответ: Да, мы можем!
Прежде чем я перейду к части " как это делается ", вот несколько заметок о моем патче / хаке / исправлении. С самого начала основными целями были:
Держите все модификации в абсолютном минимуме.
Мы хотим, чтобы настройки Xcode были как можно более оригинальными.
Во что бы то ни стало, старайтесь избегать исправления или изменения каких-либо файлов.
Мы хотим, чтобы все файлы оставались нетронутыми и сохраняли свое первоначальное содержимое.
Старайтесь избегать перемещения или копирования файлов, если в этом нет крайней необходимости.
Мне удалось сохранить все эти цели. Почти все делается путем создания символических ссылок. Нужно было заменить только одну существующую символическую ссылку, и мы заархивируем ее перед заменой, на всякий случай.
Если вы не являетесь экспертом по работе с терминалами, я настоятельно советую вам скопировать / вставить все команды терминала из моего ответа на ваш терминал, чтобы избежать опечаток. Имейте в виду, что даже интервалы, цитирование и особенно заглавные буквы могут быть важны. Копируйте / вставляйте их построчно, но не более одной строки одновременно и нажимайте клавишу возврата после каждой вставленной строки, чтобы выполнить команду. Если какая-либо операция когда-нибудь запросит у вас пароль, это будет пароль текущего зарегистрированного пользователя-администратора (ваши нажатия клавиш не отображаются при наборе текста, это нормально, не беспокойтесь, просто продолжайте вводить пароль и нажмите return; re -Попробуйте, если у вас была опечатка и вас снова попросят).
Предпосылка
Прежде чем мы сможем начать, убедитесь, что выполняются следующие условия:
- Вы вошли как администратор.
- Вы запустили Terminal.app (Приложения / Утилиты) и открылось окно терминала.
- У вас есть копия образа диска Xcode3 (например, 3.2.5) и образа Xcode4 (DMG) или программа установки.
- Если у вас уже установлена какая-либо из версий Xcode, сначала рассмотрите возможность ее удаления , чтобы вы могли начать с новой / чистой настройки. Удаление Xcode не удалит ваши настройки, цветовую схему или настройки привязки клавиш. В идеале вы должны начать с системы, в которой в настоящее время не установлена версия Xcode (ни 3, ни 4).
Шаг 1: установка Xcode3
Важно : Не устанавливать пакет Xcode3 " Системные инструменты " или " Unix Development ".
Если вы хотите установить « Mac OS X 10.4 SDK » и / или « Documentation », решать вам. Если это Xcode3 с iOS SDK, устанавливать вы их или нет, также зависит от вас.
Вы можете выбрать любую папку для установки. Для этого руководства я выбрал " / Xcode3 ", но не стесняйтесь выбирать другой. Просто убедитесь, что изменили все команды терминала соответственно.
Порядок действий, приведенный здесь, обычно не очень важен, но я настоятельно советую вам не менять местами шаги 1 и 2. Xcode всегда устанавливает пару файлов за пределы выбранной папки назначения и, в конце концов, доверяет мне вам нужны версии Xcode4 этих файлов на вашем диске. Установив Xcode3 до Xcode4, вы можете быть уверены, что Xcode4 перезапишет эти файлы, если это необходимо. Однажды я поменял местами шаги 1 и 2, и в итоге у меня возникли довольно странные проблемы, которые могли быть связаны с неправильным порядком (точно сказать не могу, но после переустановки в правильном порядке проблемы исчезли).
Шаг 2: установка Xcode4
Выбирайте любые пакеты, которые вам нравятся. Установка " Системные инструменты " рекомендуется, но не является строго необходимой (хотя большинство людей рано или поздно пропустят эту функцию).
Опять же, не стесняйтесь выбирать любую целевую папку, которая вам нравится. Для этого руководства я выбрал обычную целевую папку " / Developer ", если вы выберете другую, измените все команды терминала соответственно.
Шаг 3. Восстановление поддержки SDK 10.4 / 10.5
Переключитесь в окно терминала и выполните следующие команды:
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
Если вы не установили MacOS 10.4 SDK или не планируете его использовать, вы можете спокойно пропустить этот шаг и перейти к шагу 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. Просто выберите " Other ... " для настройки сборки " Architecture " и вручную введите " ppc ", затем измените " Valid Architectures"также включать" ppc". Мы почти закончили, за исключением того, что попытка создать двоичный файл PPC с использованием GCC 4.2 и SDK 10.5 все равно не удастся.
Шаг 5. Восстановление поддержки PPC для GCC 4.2
Поскольку Apple поддерживает только платформы Intel в Xcode4, не все инструменты GCC 4.2 были созданы с поддержкой PPC. Есть один важный инструмент, который не поддерживает PPC, инструмент называется « как » и это GNU Assembler. Для компиляции двоичных файлов ppc / ppc64 с GCC 4.2 нам нужно использовать версию " as " с поддержкой 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, который официально не поддерживает ни один из них.Вы можете получить довольно глупые комментарии вместо достойных ответов, если забудете упомянуть об этом хаке.
Пожалуйста, воздержитесь от публикации здесь своих вопросов или проблем в качестве ответов или комментариев.Публиковать их как ответы не имеет смысла, потому что они не являются ответами, и нет никакого способа, как люди могут ответить вам, кроме использования комментариев, и комментарии могут не предоставить достаточно места для достойного ответа на ваш вопрос или достойного решения вашего вопроса.проблема.А публикация их в качестве комментариев означает, что вы ограничены очень небольшим пространством, и отслеживание комментариев будет затруднено, поскольку комментарии не имеют древовидной иерархии (в дальнейшем они все равно будут предлагать мало места для достойных ответов / решений).Спасибо.
Конечно, приветствуются и другие комментарии, а также лучшие ответы на исходный вопрос; -)