Понимание ошибки сборки 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 ответа
Когда вы интегрируете внешнюю библиотеку в свое приложение, оно обычно компилируется для работы с симулятором или на устройстве. Я считаю, что ваш файл.a был скомпилирован для работы на устройстве, и если вы создаете его для устройства, ваш компоновщик должен вести себя лучше.
В качестве альтернативы, вы, возможно, просто забыли включить файл.a.