2014-05-01 4 views
0

Я создаю собственный модуль trigger.io и включил структуру AFNetworking 2.0, вручную добавив файлы заголовка и реализации в проект ForgeModule.AFNetworking-2 с Trigger.io

AFNetworking 2.0 indicates целевое требование ios 6.0+.

В xcode я изменил цель развертывания для UniversalForgeModule на 6.0.

Однако после включения этого вновь упакованного собственный модуля в моем приложении, я получаю следующее сообщение об ошибке при его построении:

Ld build/Release-iphonesimulator/ForgeInspector.app/Forge normal i386 
    cd /var/folders/xw/34h86n3d5p54qpq1wfc8ff600000b1/T/tmp5z_JZJ/ios/app 
    setenv IPHONEOS_DEPLOYMENT_TARGET 5.0.1 

...

Undefined symbols for architecture i386: 
    _UTTypeCopyPreferredTagWithClass", referenced from: 
     -[AFStreamingMultipartFormData appendPartWithFileURL:name:error:] in frisbees.a(AFURLRequestSerialization.o) 
    "_UTTypeCreatePreferredIdentifierForTag", referenced from: 
     -[AFStreamingMultipartFormData appendPartWithFileURL:name:error:] in frisbees.a(AFURLRequestSerialization.o) 
    "_kUTTagClassFilenameExtension", referenced from: 
     -[AFStreamingMultipartFormData appendPartWithFileURL:name:error:] in frisbees.a(AFURLRequestSerialization.o) 
    "_kUTTagClassMIMEType", referenced from: 
     -[AFStreamingMultipartFormData appendPartWithFileURL:name:error:] in frisbees.a(AFURLRequestSerialization.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

** BUILD FAILED ** 


The following build commands failed: 
    Ld build/Release-iphonesimulator/ForgeInspector.app/Forge normal i386 
(1 failure) 

Похож моей целью для построения по-прежнему 5.0.1 , Как мне это изменить?

Доступные журналы here.

Спасибо!

ответ

2

Кажется, что AFNetworking 2.0 ссылается на Apple Framework: MobileCoreServices.framework.

Чтобы включить каркасы Apple в ваш модуль, вам необходимо будет Change build configuration, добавив шаг построения add_ios_system_framework.

Шаги:

  1. Добавить build_steps.json файл в папку ios в директории модуля.
  2. Добавьте следующие строки в файл:

    [ 
        { 
        "do": { 
         "add_ios_system_framework": { 
          "framework": "MobileCoreServices.framework" 
         } 
        } 
        } 
    ] 
    
  3. обновления проекта инспектор, так что вновь добавленный шаг сборки применяется к вашему проекту.

+0

Thanks Clive! К сожалению, когда я включаю его, я получаю дубликаты символов, которые, я считаю, показывают, что они уже присутствуют. Я просмотрел другие модули и не нашел его. Как вы считаете, эта ошибка связана с версией ios для развертывания? – Karoh

+0

Есть ли у вас модуль forge.request включен в вашем приложении? Forge.request также использует AFNetworking, который может быть причиной конфликтов символов, поскольку мы до сих пор не нашли хорошего решения для работы с iOS, поддерживающего только статическое связывание. В противном случае вы могли бы немного подробнее описать ошибки дубликатов символов? –

+0

Что странно в том, что я только обнаружил эти повторяющиеся символы, когда включаю MobileCoreServices, а не когда я включил библиотеку AFNetworking. Полные журналы выше в моем первоначальном посте. – Karoh

Смежные вопросы