Настройка XCode для совместных приложений Mac и iPhone, которые совместно используют модель - PullRequest
2 голосов
/ 02 ноября 2009

Я работаю над приложением Core Data. Я хотел бы создать интерфейсы как для Mac, так и для iPhone, с обоими общими кодами модели.

Можно ли настроить проект Xcode, чтобы иметь цели как OS X (x86_64 10.6), так и iPhone? Или есть лучший способ сделать это?

Ответы [ 2 ]

8 голосов
/ 02 ноября 2009

Вы можете настроить один проект с целевыми объектами как для iPhone, так и для Mac, но есть много ошибок, и некоторые вещи работают не совсем правильно. Как-то хромает, что так плохо работает.

Лучший способ поделиться кодом модели - это разделить его на собственный проект и создать в виде статической библиотеки, а затем включить ее в проекты Mac и iPhone в качестве перекрестной ссылки проекта. Это. Вот блог post , в котором подробно объясняется, как настроить совместное использование кода между несколькими проектами iPhone. Тот же метод работает и для совместного использования статической библиотеки в приложении Mac.

2 голосов
/ 02 ноября 2009

Предположим, ваше приложение называется Foo.

  1. Создайте новый проект, используя Какао Рамочный шаблон. Я бы назвал это проект FooCore.
  2. Из "Внешних рамок и Библиотеки ", удалите Cocoa.framework Мы удаляем эту структуру как она есть недоступно на iPhone. Ты можешь хочу оставить его, чтобы вы могли настроить Target.
  3. Добавьте новую цель, сделайте это какао Сенсорная статическая библиотека.

    1. Дважды щелкните по вновь добавленной цели.
    2. На вкладке «Сборка»> Изменить «Конфигурация» в раскрывающемся списке «Все конфигурации».
    3. Измените «Базовый SDK» на «iPhone Device 3.1» (при сборке для симулятора обязательно переключитесь на «iPhone Simulator»)
    4. Изменить "Архитектура" на "Стандарт"
  4. Добавьте необходимые рамки для обоих цели. CoreData.framework
    Foundation.framework

Теперь вы можете создать свой проект для включения в проект Cocoa или Cocoa Touch.

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