Ответ 1
Я развиваюсь на коробке 10.8 и поддерживаю 10.5. Всего пару месяцев назад мы сбросили 10,4 поддержки PPC, и я все еще очищаю часть кода, характерного для 10.2. Это может немного поработать, но я давно делаю старые версии. У меня есть некоторые мнения по этому вопросу.
- Независимо от того, что Apple говорит в своих документах, если вы хотите поддерживать 10.6, затем создайте с помощью 10.6 SDK. Не полагайтесь на цель распространения.
- У меня было это обсуждение с инженерами Xcode, и, хотя они придерживаются линии Apple, которую вы всегда должны строить с помощью новейшего SDK, они также признают, что это вообще безумие. Если вы создадите против 10.8 SDK и отметьте цель развертывания в 10.6, вы не получите никаких предупреждений об использовании методов, которые не существуют в 10.6. Единственный способ узнать, что вы использовали несуществующий метод, это то, что он может дать вам странные ошибки при запуске на 10.6. Это безумие.
- Помните, что OS X не сбой при отправке неизвестного селектора. Он просто прерывает текущую runloop. Таким образом, ошибки еще сложнее отслеживать, а затем на iOS, где это приводит к сбою приложения.
- Конечно, вы можете сделать слабую связь. Разговор об опасном.... Да, есть несколько раз, это полезно, но компилятор не дает вам никаких предупреждений, если вы не делаете это правильно. Если я собираюсь сделать слабую связь таким образом, я иду в другую сторону, связывая старый SDK и копируя новый прототип функции в мою реализацию. Таким образом, у меня есть документация по каждой функции, я думаю, что я пойду на слабую ссылку.
- Загрузите старые SDK и добавьте их в свой дистрибутив Xcode.
- Остерегайтесь их ревниво. Apple будет пытаться удалить их каждый раз, когда вы обновляете Xcode. Сделайте свои собственные копии и вставьте их в /SDK или где-нибудь еще от Xcode. Я предоставляю script fix-xcode для автоматического управления символическими ссылками. Я горько отношусь к Apple за их неустанное сопротивление удалению моих старых SDK? Да, я.
- Вы можете запустить 10.6 Server в VM на законных основаниях. Вы можете запустить 10.7+ Desktop в VM на законных основаниях. Это хороший способ проверить ваш код.
- Или вы можете делать то, что я делаю, и иметь небольшую кучу старых MacBooks с двумя или тремя разделами на них, которые вы перезагружаете все время.
- Теперь, когда 10.7 приходит из App Store, немного сложнее создавать виртуальные машины. Моя сильная рекомендация - мгновенно снять изображение сразу после установки и сделать чистую резервную копию. Вы хотите время от времени клонировать это изображение, когда вам нужно вернуться к "сырой" машине.
- Получите привычку бегать SDK, когда они выходят. 10.8 будет когда-нибудь старым. Вы могли бы также сделать копию сейчас, пока это легко.
- Независимо от того, поддерживаете ли вы отдельные потоки-точки или нет, может быть очень полезно поддерживать обновления пакетов для отдельных точечных версий. Когда вы сталкиваетесь с клиентами, которые запускают текущие версии, приятно иметь возможность проверить, легко ли воспроизводится ошибка "невоспроизводимая" на их конкретной версии. Стоит ли это того или нет, зависит от вашего продукта и клиентов. Это была спасательная жизнь для меня, когда 10.4.11 внесли серьезные изменения в WebKit во время точечного релиза...
- Инвестируйте в небольшой NAS или большой внешний USB-накопитель (хотя у меня были проблемы с неудачами при использовании широко, поэтому я предпочитаю RAID). Вам понадобится место. Вы хотите держать много виртуальных машин и множество SDK, а иногда и старых версий Xcode.