Могу ли я сохранить один проект в XCode, но собрать его для Mac OS X, Apple Mac Store и устройств iOS? - PullRequest
3 голосов
/ 27 января 2011

Я заметил, что здесь есть разные требования для каждой платформы. Мне было интересно, возможно ли создать один проект, но с несколькими целями, где каждая цель - Mac OS X (что-то вроде сборки CD / install), Apple Mac Store и устройство iOS.

Если бы я поступил неправильно, я бы хотел знать! В основном я работаю на ПК, но с состоянием App Store я бы хотел выкладываться как можно больше!

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Поддерживать отдельные цели для магазина приложений Mac и независимо распространяемого приложения Mac очень просто. Вам просто нужно убедиться, что код подтверждения вашей квитанции условно включен в цель магазина приложений, а не в другую цель; и ваша таможенная схема лицензирования включена наоборот. Все становится немного сложнее, если вы нацеливаетесь на разные операционные системы в двух целях, но они не являются непреодолимыми: вы можете проверить наличие классов или селекторов во время выполнения, чтобы убедиться, что вы никогда не вызовете более новый API на старых системах.

Кстати, для этих целей также стоит иметь отдельные Info.plist файлы. Частично потому, что вам не нужно или не нужно включать такие вещи, как свойства Sparkle, в цель магазина приложений, а также потому, что каждая цель должна иметь уникальный идентификатор пакета. Магазин приложений делает странные вещи, когда у вас установлено приложение, которое, по его мнению, пришло из магазина, но на самом деле этого не произошло, и вы не хотите рисковать своим средством обновления или попыткой Apple обновить приложение, развернутое с помощью другого механизма. Но дело не в организации вашего проекта XCode, это проблема развертывания.

0 голосов
/ 27 января 2011

По крайней мере, с 3.2.5, это абсолютно не проблема.Вы не обязательно сможете применить все свои параметры сборки для всего проекта, но вы можете указать их для каждой цели.Просто добавьте цель соответствующего типа (Какао Touch, Какао и т. Д.).

0 голосов
/ 27 января 2011

По большей части, да.Все приложения для Mac / iOS могут быть написаны на Objective-C, и код очень похож.Тем не менее, вы должны иметь в виду, что устройства iOS имеют разные размеры экрана, чем у Mac и даже друг от друга.Это означает, что входная метафора отличается, а пользовательский интерфейс другой.Хотя можно делать то, что вы хотите, не рекомендуется просто один раз кодировать и трижды компилировать.

Тем не менее, я не использую Xcode 4, поэтому не могу рассказать вам об этом.Если вы хотите делать разные сборки для разных устройств, вам нужно написать логику приложения и логику ввода как можно более раздельно.Затем вы создаете несколько целей, по одной для каждой сборки.Вы определяете флаги компилятора для каждой цели.В вашем коде вы будете использовать эти флаги, чтобы использовать соответствующий код для вашей сборки.

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