Сборка статической библиотеки для iOS - PullRequest
2 голосов
/ 25 мая 2011

Я создал статическую библиотеку для iOS. Моя проблема заключается в том, что я использую ASIHTTPRequest в качестве примера в своей библиотеке, и когда я добавляю свою библиотеку в приложение, которое уже использует библиотеку ASIHTTPRequest, я получаю ошибки компилятора, пока не удаляю все файлы ASIHTTPRequest .m из проекта, который использует мою библиотеку. .

Есть ли способ обойти это? Как, например, собрать статическую библиотеку и заставить ее требовать библиотеки ASIHTTP, а не добавлять их в проект?

РЕДАКТИРОВАТЬ:

Вот пример ошибки, которую я получаю, когда я «архивирую» проект.

ld: duplicate symbol _main in /Users/tj/Library/Developer/Xcode/DerivedData/db-afhqjyfitjcnbqdmywezdvmryvyp/ArchiveIntermediates/db/IntermediateBuildFilesPath/db.build/Release-iphoneos/db.build/Objects-normal/armv6/fmdb.o and /Users/tj/Library/Developer/Xcode/DerivedData/db-afhqjyfitjcnbqdmywezdvmryvyp/ArchiveIntermediates/db/IntermediateBuildFilesPath/db.build/Release-iphoneos/db.build/Objects-normal/armv6/main.o for architecture armv6
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

Траусти

1 Ответ

0 голосов
/ 02 июля 2011

То, что я хотел бы предложить, - это превратить ASIHTTPRequest в собственную статическую библиотеку, добавив ее в качестве проекта зависимости в проект вашей статической библиотеки. По сути, вы должны создать проект xcode, упаковать в него ASIHTTPRequest, закрыть этот проект и перетащить файл проекта ASIHTTPRequest в навигатор файлов проекта статической библиотеки. Это добавит его в качестве проекта зависимости и автоматически построит его в виде статической библиотеки и свяжет ваш проект с ним.

При использовании статической библиотеки в одном из ваших проектов приложения сделайте то же самое. Управлять статической библиотекой проще как проект зависимости, который, в свою очередь, имеет ASIHTTPRequest в качестве другого уровня зависимости. Таким образом, оба ваших проекта смогут видеть его заголовки и связываться с ним, и не будет повторяющихся проблем с символами.

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

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