Лучшие практики для обратной совместимости OSX 10.x - PullRequest
4 голосов
/ 06 июля 2011

Я относительно новичок в разработке для OS X (использую XCode)

Я недавно протестировал приложение, над которым работал на MacBook друзей, и столкнулся с проблемой.

Я собралприложение на моем MacBook под управлением Snow Leopard 10.6.5, в то время как Mac моего друга работал под управлением более ранней версии (я думаю, что Leopard 10.5.x).Приложение не запустилось и просто показало сообщение о том, что операционная система устарела для приложения.

Само приложение очень простое и не требует каких-либо сторонних библиотек или API.

Как лучше всего использовать тот же установщик?Мне не нужно уметь справляться с чем-то старше, чем, скажем, 10.4.

1 Ответ

7 голосов
/ 06 июля 2011

Вам необходимо изменить целевые параметры развертывания Mac OS X (имя ключа: MACOSX_DEPLOYMENT_TARGET) вашего проекта или приложения на самую старую ОС, которую вы хотите поддерживать.

Вот документация по изменению основных настроек сборки для цели: http://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Building/Building.html#//apple_ref/doc/uid/TP40010215-CH9-SW2

А вот ссылка на документацию с дополнительной информацией для сборки для нескольких выпусков ОС. Я не смог найти онлайн-ссылку, так что это ссылка на вашу локально установленную документацию. Файл: ///Library/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone4_0.iPhoneLibrary.docset/Contents/Resources/Documents/documentation/DeveloperTools/Conceptual/XcodeProjectManagement/210-Building_Products/building. HTML # // apple_ref / DOC / UID / TP40002693-SW38

Вот выдержка:

Вы можете разрабатывать программное обеспечение, которое можно развертывать, и использовать функции различных версий iPhone OS или Mac OS X, включая версии, отличные от той, для которой вы разрабатываете. Эта возможность называется перекрестной разработкой.

Чтобы воспользоваться преимуществами кросс-разработки, необходимо установить SDK для Mac OS X для версий ОС, для которых планируется таргетинг. Затем в своих проектах укажите, какой SDK использовать при создании своих продуктов. Вы также можете указать самую раннюю версию Mac OS X, на которой должно работать программное обеспечение.

В некоторых случаях Apple распространяет SDK для будущей версии операционной системы в качестве начального числа, что позволяет подготовить приложение к работе с будущими версиями Mac OS X до того, как они будут выпущены для широкой публики.

Внимание! Для кросс-разработки в Xcode требуются собственные цели.

Чтобы настроить проект Xcode на несколько версий Mac OS X, выполните следующие действия:

Выберите SDK. Выберите свой проект в списке «Группы и файлы» и выберите «Файл»> «Информация». На панели «Общие» окна «Сведения о проекте» выберите SDK во всплывающем меню «Базовый SDK для всех конфигураций». Когда вы выбираете SDK, XCode строит цели в вашем проекте на основе набора заголовков, соответствующих указанной версии ОС, и связывается с библиотеками-заглушками в этом SDK. Это позволяет вам создавать продукты на своем компьютере для разработки, которые могут быть запущены в той версии ОС, для которой предназначен SDK. Ваше программное обеспечение может использовать функции, доступные в системных версиях, вплоть до той, которую вы выбрали.

Вы также можете указать Base SDK с помощью параметра сборки Base SDK (SDKROOT).

Выберите версию развертывания Mac OS X. Если ваше программное обеспечение должно работать в диапазоне версий операционной системы, выберите операционную систему развертывания Mac OS X для каждой отдельной цели, для которой она требуется. Операционная система развертывания определяет самую раннюю версию системы, на которой может работать программное обеспечение. По умолчанию устанавливается версия ОС, соответствующая версии SDK.
Чтобы установить версию развертывания для цели:

а. Выберите цель в списке Группы и файлы и откройте информационное окно. Нажмите Build, чтобы открыть панель Build.

б. Найдите параметр сборки Deployment Target (MACOSX_DEPLOYMENT_TARGET) или iPhone OS Deployment Target (IPHONEOS_DEPLOYMENT_TARGET) (в зависимости от платформы, для которой вы разрабатываете) и выберите операционную систему развертывания во всплывающем меню в столбце Value.

Для каждой цели укажите файл префикса, который учитывает выбранный SDK. Чтобы использовать заголовочный файл зонтика из SDK в качестве файла префикса, добавьте соответствующую директиву #include в файл префикса вашей цели вместо установки пути заголовка префикса непосредственно к заголовку рамки зонтика. Успешная разработка программного обеспечения для нескольких версий Mac OS - это еще не все. Для получения дополнительной информации см. Руководство по совместимости SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...