iOS 4.1 SDK – Дублирующие символы в многостатической библиотеке Связывание для сборки устройств

Моя компания создает приложение с SDK 4.1 для iPhone.

Для этого у нас есть 3 уровня зависимости проектов, наше основное приложение «CSM» связывается с нашим SDK под названием «csm-sdk» (в libsrc_csmsdk.a) csm-sdk, затем ссылается на нашу библиотеку XMLRPC («libXMLRPC.a») ,

При компиляции csm-sdk для устройства он включает определения для всех классов ObjC и C-функции для библиотеки XMLRPC oue дважды.

Затем, когда CSM-ссылки, он сообщает о дублировании объектов в том же файле библиотеки.

Мы связываем на всех уровнях с -all_load и -ObjC.

У меня есть еще один проект, делающий что-то подобное на SDK 3.2, и все работает отлично … И этот проект на 4.1 как симулятор строит все работает отлично, только устройство выходит из строя. Кто-нибудь сталкивается с чем-то подобным?

Подробнее см. Ниже.

Благодаря!

Гленн Р. Мартин

Ошибка сборки:

ld: duplicate symbol _OBJC_METACLASS_$_XMLParser in /Users/builder/cc/workingdirs/iphoneclient/csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a(XMLParser.o) and /Users/builder/cc/workingdirs/iphoneclient/csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a(XMLParser.o) collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 ProcessProductPackaging "/Users/builder/Library/MobileDevice/Provisioning Profiles/6EB9AEE7-A844-4017-B076-06C3240F869B.mobileprovision" "build/Release-iphoneos/CSM.app/embedded.mobileprovision" cd /Users/builder/cc/workingdirs/iphoneclient setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" <com.apple.tools.product-pkg-utility> "/Users/builder/Library/MobileDevice/Provisioning Profiles/6EB9AEE7-A844-4017-B076-06C3240F869B.mobileprovision" -o "/Users/builder/cc/workingdirs/iphoneclient/build/Release-iphoneos/CSM.app/embedded.mobileprovision" ProcessProductPackaging dist.plist "build/CSM.build/Release-iphoneos/CSM.build/CSM.xcent" cd /Users/builder/cc/workingdirs/iphoneclient setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" <com.apple.tools.product-pkg-utility> /Users/builder/cc/workingdirs/iphoneclient/dist.plist -entitlements -format xml -o "/Users/builder/cc/workingdirs/iphoneclient/build/CSM.build/Release-iphoneos/CSM.build/CSM.xcent" ** BUILD FAILED ** The following build commands failed: CSM: Ld "/Users/builder/cc/workingdirs/iphoneclient/build/CSM.build/Release-iphoneos/CSM.build/Objects-normal/armv6/CSM" normal armv6 Ld "/Users/builder/cc/workingdirs/iphoneclient/build/CSM.build/Release-iphoneos/CSM.build/Objects-normal/armv7/CSM" normal armv7 (2 failures) Release BUILD failed 

otool dump устройства:

 Archive : csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a (architecture armv7) Table of contents from: csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a(__.SYMDEF) (for architecture armv7) size of ranlib structures: 1960 (number 245) size of strings: 6256 object symbol name XMLParser.o _OBJC_CLASS_$_XMLParser XMLParser.o _OBJC_METACLASS_$_XMLParser XMLParser.o .objc_class_name_XMLParser XMLRPC.o _OBJC_IVAR_$_XMLRPC._asynchronousData XMLRPC.o _OBJC_IVAR_$_XMLRPC._methodName XMLRPC.o _OBJC_IVAR_$_XMLRPC._asynchronousConnection XMLRPC.o _OBJC_IVAR_$_XMLRPC._asynchronous XMLRPC.o _OBJC_IVAR_$_XMLRPC._asyncRequestInProgress XMLRPC.o _OBJC_IVAR_$_XMLRPC._queueRequests XMLRPC.o _OBJC_IVAR_$_XMLRPC._requestTimeout XMLRPC.o _OBJC_IVAR_$_XMLRPC._serviceUrl XMLRPC.o _OBJC_IVAR_$_XMLRPC._cachingPolicy XMLRPC.o _OBJC_METACLASS_$_XMLRPC XMLRPC.o .objc_class_name_XMLRPC XMLRPC.o _OBJC_CLASS_$_XMLRPC ... Clipped for Brevity ... CSMWebservice.o l_OBJC_LABEL_PROTOCOL_$_NSObject CSMWebservice.o l_OBJC_LABEL_PROTOCOL_$_XMLRPCDelegate XMLParser.o _OBJC_METACLASS_$_XMLParser XMLParser.o .objc_class_name_XMLParser XMLParser.o _OBJC_CLASS_$_XMLParser XMLRPC.o _OBJC_IVAR_$_XMLRPC._methodName XMLRPC.o _OBJC_IVAR_$_XMLRPC._asynchronousConnection XMLRPC.o _OBJC_IVAR_$_XMLRPC._delegate XMLRPC.o _OBJC_IVAR_$_XMLRPC._serviceUrl XMLRPC.o _OBJC_IVAR_$_XMLRPC._queueRequests XMLRPC.o _OBJC_IVAR_$_XMLRPC._requestTimeout XMLRPC.o _OBJC_IVAR_$_XMLRPC._asynchronousError XMLRPC.o .objc_class_name_XMLRPC XMLRPC.o _OBJC_CLASS_$_XMLRPC 

otool dump симулятора:

 Archive : csm-sdk/build/Release-iphonesimulator/libsrc_csmsdk.a Table of contents from: csm-sdk/build/Release-iphonesimulator/libsrc_csmsdk.a(__.SYMDEF) size of ranlib structures: 1520 (number 190) size of strings: 5080 object symbol name CSMWebservice.o _OBJC_METACLASS_$_CSMWebservice CSMWebservice.o _OBJC_CLASS_$_CSMWebservice CSMWebservice.o l_OBJC_LABEL_PROTOCOL_$_NSObject XMLParser.o _OBJC_CLASS_$_XMLParser XMLParser.o _OBJC_METACLASS_$_XMLParser XMLParser.o .objc_class_name_XMLParser ... No duplication, clipped for brevity ... 

2 Solutions collect form web for “iOS 4.1 SDK – Дублирующие символы в многостатической библиотеке Связывание для сборки устройств”

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

Это была известная ошибка в 4.1, фактически, когда я перечислил ее на rdar, она была указана в виде дубликата. Мне сообщили, что он недавно был исправлен, просто надеюсь, что исправление появится в следующей версии.

  • «Команда не найдена» с пользовательским сценарием запуска и xcodebuild
  • Использование xcodebuild для установки приложения на iPhone
  • Ошибка сборки xcode с кодом ошибки 65 без указания сообщения
  • Не удалось создать версию сборки приложения cordova ios
  • Командная строка xcodebuild: передача идентификатора DevelopmentTeam для целей подписи кода
  • Jenkins и Xcode5 - тестовый результат?
  • XCode: папка Documents and Library для сборки командной строки xcode
  • Как создать файл выпуска iOS App Store из командной строки?
  • Невозможно создать сборку релизов для приложения Cordova iOS
  • Может ли xcodebuild автоматически установить и запустить iOS-симулятор?
  • Невозможно использовать собственный кестор с xcodebuild под Mavericks
  • Interesting Posts

    Цели Xcode – создание программ

    Установите рейтинг прямо в приложении (Swift 3, iOS 10.3)

    Как преобразовать дату (не зная вида) в строку

    Случайное перемещение объекта по экрану

    Когда вам нужно сбросить свойство view.frame после преобразования iOS

    Быстрая загрузка видео и воспроизведение без буферизации видео с URL-адреса

    Вызов viewwillappear после отклонения modalviewcontroller

    Поведение на рабочем столе против iPad

    Внешний вид iOS 7 UINavigationBar не работает в первый раз …

    NSUserDefaults – хранение и извлечение данных

    (Firebase) печатает неправильное количество пользователей в базе данных при подсчете пользователей в массиве

    Такое же приложение после обновления в iTunes

    Ошибка подачи / предупреждения о недопустимом сигнале в Xcode 4.2

    Каков наилучший способ подключения Realm и SwiftBond

    Как добавить две или более кнопки в annotationView: MKAnnotationView?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.