Какой шаблон проекта следует использовать для библиотеки iOS и Cocoa?

У меня есть куча кода в проекте iOS (под названием «MyLibs»), который я повторно использую в разных приложениях. Я перетаскиваю проект MyLibs в рабочую область любого приложения, которое я создаю. Я не использую модульные тесты как таковые, но у меня есть кнопки, с помощью которых можно очень легко запустить все тесты в приложении для iPhone.

Я изучаю Cocoa и хотел бы разделить свою библиотеку на библиотеки, которые я могу использовать в обоих проектах. Я думал, что это будут MyCommonLibs (или MyFoundationLibs), MyIOSLibs и MyCocoaLibs.

Однако при создании нового проекта я должен выбирать между приложением iOS или приложением Cocoa. Похоже, iOS Framework and Library -> Cocoa Touch Static Library подходит, потому что она связана с платформой Foundation. С другой стороны, я бы предпочел использовать шаблон приложения, если в нем нет серьезных недостатков.

Мне нужно иметь возможность использовать MyCommonLibs в обоих типах приложений, так как некоторые из них полезны для обоих, например категории NSArray и т. д.

Какой шаблон я должен использовать для MyCommonLibs и должен ли я использовать библиотеку, платформу (в шаблонах Mac OS) или я могу просто использовать обычный шаблон приложения (как я делал до сих пор)?


person TigerCoding    schedule 09.03.2012    source источник
comment
Является ли проект MyCommonLabs просто контейнером для некоторого кода, который вы собираетесь повторно использовать в различных реальных проектах? В этом случае вы можете просто использовать iOS/other/empty. Если вы хотите использовать его как satic-библиотеку и включить ее в качестве фреймворка в свой реальный проект (не просто создать локальную копию кода, а действительно использовать один и тот же код), вам следует использовать статическую сенсорную библиотеку iOS/Framework&Library/Cocoa.   -  person Hermann Klecker    schedule 10.03.2012


Ответы (1)


  1. Создайте проект iOS Framework & Library. Назовем его TestLib.

  2. Добавьте новую цель (Файл > Создать > Цель) типа MAC OS X Framework & Library.

Таким образом, вы можете скомпилировать библиотеку iOS и библиотеку MAC OS X из одного проекта.

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

Как вы можете видеть на скриншотах ниже, SharedClass доступен в обеих библиотеках, iOSOnlyClass доступен только для iOS, а MACOnlyClass доступен только для MAC OS X.

введите здесь описание изображения

введите здесь описание изображения

Вы также можете добавить цели для модульных тестов в том же проекте.

Чтобы организовать свой код, вы можете поместить общие классы в группу, а классы каждой цели в отдельную группу.

введите здесь описание изображения

person sch    schedule 09.03.2012
comment
XCode не будет жаловаться, когда у меня есть код для iOS в одних файлах и код для Cocoa в других? - person TigerCoding; 10.03.2012
comment
Кроме того, буду ли я использовать Cocoa Framework или Cocoa Library для второй цели? - person TigerCoding; 10.03.2012
comment
вы можете использовать тот тип, который вам удобен Ммм, а где бы узнать, какой из них удобнее? ;) Я просто хочу включить эти файлы в другие проекты, но я хотел бы иметь возможность протестировать их и в этом проекте. - person TigerCoding; 10.03.2012
comment
Большое спасибо за Вашу помощь! - person TigerCoding; 10.03.2012