2013-08-23 117 views
5

解決方案:所以Mopub的說明沒有提到EventKitEventKitUI是必需的。除了MoPub提到的框架之外,還增加了這些項目。瞭解Xcode構建錯誤

更新: MoPub的說明已更新。


我整合MoPub的完整的iOS SDK到我的應用程序按照自己的instructions。不幸的是我加入自己的代碼和所需的框架後,得到下面的編譯錯誤:

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時,整合過程非常簡單。因此,我沒有太多經驗來解決這些類型的錯誤。

注意我嘗試將MoPub完整SDK集成到我自己的應用程序和一個裸機測試應用程序中。兩者都給出了相同的錯誤。

+2

通讀該複本的答案。它將解釋這些鏈接器錯誤。 – rmaddy

+0

@rmaddy這絕對有幫助!解決方案(添加到問題中)只是添加了MoPub未提及的框架。在我看來,這個問題應該保持開放,直到MoPub的入侵更新,因爲它可能對其他開發者有幫助。 – SundayMonday

+0

唉!因文檔錯誤而浪費了2個小時:@尚未更新。 –

回答

1

當您將外部庫集成到應用程序中時,通常會將其編譯爲與模擬器或設備配合使用。我相信你的.a文件被編譯爲可以在設備上工作,如果你爲一個設備構建,你的鏈接器應該表現得更好。

或者,您可能忘記了包含.a文件。

+1

請閱讀我在評論中引用的重複問題中的答案。學習如何閱讀這些鏈接器錯誤是一項重要技能。 – rmaddy

17

EventKit.framework添加到您的項目中。

+0

'MRCalendarManager'沒有問題。請再次閱讀錯誤。它明確指出,問題在於'MRCalendarManager'引用了缺失的'EKxxx'符號。這意味着'EventKit'框架需要被添加到項目中。 – rmaddy

+0

對不起,然後添加EventKit.framework到你的項目。 – satheeshwaran

+0

也將EventKitUI.framework添加到您的項目中。 – Tony