2011-05-31 19 views
8

我必須在這裏做一些完全愚蠢的事情,但是我無法獲得我的項目中包含的PLCrashReporter框架。下面是我得到的框架的步驟:Xcode 4中的PLCrashReporter - 不會在模擬器中編譯

  1. 從官方網站的項目在谷歌代碼
  2. 複製CrashReporter.framework文件夾到我的項目
  3. 新增的根目錄下下載的.dmg文件轉到我的項目,選擇目標,去構建階段選項卡,打開鏈接二進制與圖書館部分,點擊加號,並添加CrashReporter.framework文件夾

我在拉框架框架在我的課堂文件中使用

#import <CrashReporter/CrashReporter.h>

當我嘗試下4.3模擬器編譯,我得到以下錯誤:

爲i386硬件架構未定義的符號: 「_OBJC_CLASS _ $ _ PLCrashReporter」,從引用: objc級-REF在AppDelegate中+ CrashReporting.o 「_OBJC_CLASS _ $ _ PLCrashReport」,從引用: objc級-REF中的AppDelegate + CrashReporting.o LD:符號(S)沒有找到i386硬件架構 鐺:錯誤:連接命令,退出失敗代碼1(使用-v選擇e調用)

當我在設備下編譯時,一切都很好。是否需要包含某種標題或庫搜索路徑?

該應用程序在XCode 3下編譯時,在所有配置下都沒有問題。

回答

13

我有同樣的問題,並能夠解決它。這裏是我完成的步驟...

  1. 下載PLCrashReporter source release並解壓縮。
  2. 打開PLCrashReporter xcode項目。此項目設置爲使用舊SDK,爲每個目標更新所有必需的SDK以擺脫警告。這也是下一步編譯所必需的。
  3. 導航到CrashReporter-iPhoneSimulator目標。在構建設置下:a)將「執行單對象預鏈接」設置爲「否」,b)將「Mach-O類型」設置爲「靜態庫」。
  4. 選擇CrashReport-iPhoneSimulator:[IOS仿真(即iPhone 4.3模擬器)]並點擊build。
  5. 導航到PLCrashReporter的編譯目錄。對我來說,它是/用戶名/用戶名/庫/開發人員/ Xcode/DerivedData/CrashReporter-(隨機字符)/生成/產品/調試-iphonesimulator
  6. 將libCrashReporter-iphonesimulator.a從步驟5中的build目錄複製到iphone應用程序項目目錄要添加崩潰記者。
  7. 在xcode中打開你的iphone應用程序項目。
  8. 下載PLCrashReporter binary release並將框架提取到本地目錄。
  9. 使用此SO post將CrashReporter框架添加到您的項目中。
  10. 按照與步驟9相同的步驟,將libCrashReporter-iphonesimulator.a靜態庫添加到構建階段的「Link Binary with Libraries」部分。添加靜態庫時,不需要* .framework目錄。
  11. 檢查目標中的「與庫鏈接二進制文件」。確保libCrashReporter-iphonesimulator.a在CrashReporter框架上方列出。您可以拖放來重新排序。

我希望這會有所幫助。

+6

只是決定放棄看想要的步驟數量的想法... – mkto 2012-04-24 09:59:56

+0

嗨,第一點的鏈接顯示13下載。我們應該下載哪個文件? – Confused 2012-12-11 12:15:45

+0

難道不可能訪問您已經安裝的項目嗎?它非常複雜,我不認爲每個人都瞭解每一步。我也不知道你在第2步討論哪些SDK。 – 2015-05-13 09:25:24

1

爲別人尋找這樣的信息:

我跟着上面但是我得到的錯誤給出了相同的步驟。我刪除了靜態庫,只包含了框架(你可以從他們的dmg中獲得)。

它對我來說非常合適。我認爲通過構建項目來創建靜態庫的過程是舊的(在他們創建框架之前)。

謝謝。

+0

哪些是靜態庫?也許你可以粘貼一個鏈接並更詳細地解釋步驟。 – 2015-05-13 09:28:03

0

不要忘了包括

libstdc++.dylib

「鏈接二進制與圖書館」

+0

任何意見,爲什麼這個lib應該包括在內?它關於PLCrashReport – 2015-01-16 10:27:34