Категории в статической библиотеке для устройства iPhone 3.0

У меня есть категории в моей статической библиотеке. Любой разработчик приложений должен установить флаг -ObjC на «Другие флаги компоновщика», чтобы правильно использовать мою статическую библиотеку. Он отлично работает для устройств iPhone / iPhone Simulator 2.x и iPhone Simulator 3.0. Но вылетает на устройстве iPhone 3.0. Как написано в этой статье, это новая ошибка компоновщика . Они предлагают использовать еще один флаг компоновщика: -all_load. Но когда я добавляю этот флаг, сборка тоже завершается ошибкой, потому что есть повторяющиеся символы.

Как использовать категории в статических библиотеках для устройства iPhone 3.0? Какие-либо предложения?


person Community    schedule 18.07.2009    source источник
comment
У меня такая же проблема, вы ее решили?   -  person thierryb    schedule 01.10.2009
comment
В последнем компоновщике кажется, что это было исправлено, и -all_load больше не нужен.   -  person drekka    schedule 21.06.2012


Ответы (4)


Мы столкнулись с той же проблемой ( в версии 3.0 -ObjC больше не ссылается на категории) в рамках Core Plot framework. Все, что я могу сказать, это то, что мы смогли добавить параметр -all_load к другим флагам компоновщика в целевом приложении, и это устранило ошибки времени выполнения. Мы не видели предупреждений о повторяющихся символах.

Я отправил отчет об ошибке в работе компоновщика, как и я уверен, что есть у других.

person Brad Larson    schedule 18.07.2009

Это ошибка, вызванная попыткой исправить другую ошибку с помощью взлома. Исправление -all_load для ошибки категории - это полный взлом.

Дополнительную информацию см. здесь.

person jamie    schedule 17.06.2010

Когда вы добавляете -all_load к другим флагам компоновщика, убедитесь, что все фреймворки, используемые библиотекой, связаны с вашим целевым приложением. В противном случае он не скомпилируется. В моем случае у меня была Категория для MKMapView, и я не связывал MapKit Framework с моим целевым приложением, поэтому класс, к которому принадлежит категория, не был найден во время сборки.

person aldi    schedule 17.12.2009

Я столкнулся с той же проблемой "повторяющихся символов". Без флага -all_load нам также пришлось включить все библиотеки, с которыми связана наша библиотека, в строку ссылки приложения. Удаление их из строки ссылок приложения решило проблему.

person Kenny Leung    schedule 19.12.2009