Понимание ошибки сборки XCode

Решение: поэтому в инструкциях Mopub ничего не сказано EventKit а также EventKitUI являются обязательными. Добавление их в дополнение к фреймворкам, упомянутым MoPub, позволило создать проект.

Обновление: инструкции MoPub были обновлены.


Я интегрирую полный iOS SDK MoPub в свое приложение, следуя их инструкциям. К сожалению, я получаю следующие ошибки сборки после добавления их кода и необходимых структур:

Undefined symbols for architecture i386:

  "_OBJC_CLASS_$_EKAlarm", referenced from:
      objc-class-ref in MRCalendarManager.o
  "_OBJC_CLASS_$_EKEvent", referenced from:
      objc-class-ref in MRCalendarManager.o
  "_OBJC_CLASS_$_EKEventEditViewController", referenced from:
      objc-class-ref in MPInstanceProvider.o
  "_OBJC_CLASS_$_EKEventStore", referenced from:
      objc-class-ref in MPInstanceProvider.o
      objc-class-ref in MRProperty.o
  "_OBJC_CLASS_$_EKRecurrenceDayOfWeek", referenced from:
      objc-class-ref in MRCalendarManager.o
  "_OBJC_CLASS_$_EKRecurrenceEnd", referenced from:
      objc-class-ref in MRCalendarManager.o
  "_OBJC_CLASS_$_EKRecurrenceRule", referenced from:
      objc-class-ref in MRCalendarManager.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Что означают эти ошибки? Я хотел бы понять их, а затем выяснить, как исправить их самостоятельно. Обычно, когда я добавляю сторонние рекламные или аналитические SDK, процесс интеграции очень прост. Поэтому у меня нет большого опыта в устранении этих типов ошибок.

Обратите внимание, что я попытался интегрировать полный SDK MoPub в свое собственное приложение и тестовое приложение. Оба дают одинаковые ошибки.

2 ответа

Добавьте EventKit.framework в ваш проект.

Когда вы интегрируете внешнюю библиотеку в свое приложение, оно обычно компилируется для работы с симулятором или на устройстве. Я считаю, что ваш файл.a был скомпилирован для работы на устройстве, и если вы создаете его для устройства, ваш компоновщик должен вести себя лучше.

В качестве альтернативы, вы, возможно, просто забыли включить файл.a.

Другие вопросы по тегам