2013-07-19 48 views
55

最近打開了一個我編譯並提交給Apple的項目。未找到Crashlytics文件

我沒碰過它了幾個月的,但我在得到這個奇怪的編譯錯誤:

#import <Crashlytics/Crashlytics.h> 

錯誤讀取:

'Crashlytics/Crashlytics.h' file not found 

顯然,框架不能被發現,但我很困惑,爲什麼當這個項目幾個月前工作時,它突然停了下來。

任何建議爲什麼?

的Xcode:4.6.3 的Mac OS X:10.8.4

+0

是否該文件的文件系統上存在嗎? – powerj1984

+0

幾個月前我發佈了這個項目,我沒有刪除它。但是,我會看看 - 它位於哪裏? – Snowcrash

+0

在另一臺計算機上檢查SVN源代碼時遇到此問題,@Lukasz答案適用於我。 – foldinglettuce

回答

82

就在項目中添加$(SRCROOT)框架搜索路徑構建設置(搜索路徑)。

Crashlytics安裝過程將其Crashlytics.framework下降到您的項目文件夾(或創建符號鏈接)。

如果移動Crashlytics.framework在項目文件夾層次更深的地方 - 設置「遞歸」的權利,或直接指向它的父文件夾中Header Search Paths

$(SRCROOT)/Path/to/the/folder/containing/Crashlytics.framework

+2

沒有爲我工作,但「$(PROJECT_DIR)」。也許是因爲我在用Cocoapods? – phreakhead

+0

我的問題是我不小心把我的框架搜索路徑中的絕對路徑,所以當我檢查了一臺新機器上的代碼,它找不到該路徑。 –

+0

我從來沒有真正檢查過這個,但是,由於票數有限,我將其標記爲正確。 – Snowcrash

0

我已經改變了名稱工作文件夾和Craslytics失敗。在Build Settings(搜索路徑)中檢查它。

祝你好運!

3

就我而言,框架位於項目文件夾中,但不在Project Navigator中。我把它拖到項目中,一切正常。

20

我建議只使用CocoaPods來添加Crashlytics框架。不需要關心路徑了。

Podfile:

pod 'Crashlytics', '~> 3.4.1' 

腳本生成階段爲上傳的dSYM:

./Pods/Crashlytics/iOS/Crashlytics.framework/run <your_crashlytics_id> 

導入:

#import <Crashlytics/Crashlytics.h> 
+2

我們曾經使用CocoaPods進行Crashlytics/Fabric ...它以前是穩定的,但是自從Fabric改變以後,它會頻繁地中斷。請記住,Crashlytics的吊艙不是由Twitter/Crashlytics維護的。他們告訴你在停止工作時要做的第一件事是從他們的白癡客戶端重新安裝。我建議要求官方的CocoaPod支持。 – jasonjwwilliams

+0

添加#import 到我的橋接頭做了訣竅 – apinho

1

我已經就此問題與分佈式團隊的工作(通過github上)在登記入住後然後結帳CrashlyticsCrashlytics.framework將只有一個文件夾 - 「版本」。您需要將Crashlytics.framework中的內容版本保存到其他位置,然後將它們複製粘貼到Crashlytics.framework以後。

0

我試圖玩框架搜索路徑和重新安置&重新連接框架文件;檢查了構建設置(鏈接二進制庫部分),但錯誤仍然存​​在。

最後,我重新安裝了框架,只需要2-3分鐘。問題可能是由於您已將Crashlytics.framework重新定位到根目錄中的另一個子文件夾,但我不確定確切原因。

  • 刪除一切關於向Crashlytics
  • 開始crashlytics應用程序,登錄並選擇您的項目
  • 添加運行腳本
  • 將&降.framework文件(我一直是在根文件夾)
  • 添加importstartWithAPIKey語句回
1

刪除來自該項目的Crashlytics.framework和磁盤。複製並再次添加。它幫助了我。從你

25

刪除框架項目和磁盤。檢查你是否有最新版本的Fabric插件。

從插件文件夾到桌面用以下命令複製框架:

ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/com.twitter.crashlytics.ios-default.zip ~/Desktop/ 

ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/io.fabric.sdk.ios-default.zip ~/Desktop/ 

從桌面添加框架到您的項目。

信息來源:https://twittercommunity.com/t/error-upgrading-from-crashlytics-on-ios/36196/2

+0

這保存了會議時間!謝謝。 :) – marienke

+0

你救了我的一天。謝謝 –

0
  1. 你的凸出完全刪除Crashlytics框架包括在應用程序的shell腳本生成階段運行的腳本。
  2. 重新安裝光纖跟着導遊,一切都會好的。
4

對於我來說,這個工作:

從您的項目中刪除面料和crashlytics框架,並從磁盤爲我們的項目刪除該文件。

評論在您的appdelegate.m文件中的行,如果你加入他們爲以下幾點:

import Fabric/Fabric.h 
import Crashlytics/Crashlytics.h 

[Fabric with:@[CrashlyticsKit]]; 

在面料上的應用程序,選擇「新建應用程序」,然後選擇您的Xcode項目文件

重新複製構建腳本和構建的指示。構建步驟就是爲什麼你需要評論above--它的線條,如果你在離開這些線路將無法正常工作。

構建腳本運行後,它會提示你從應用程序窗口中拖動框架到您的項目導航。這將複製他的框架(其中包括.h文件)的最新版本到您的項目

我試過手動下載,並從其他項目複製,但這是我失去了框架文件後,我可以恢復的唯一辦法爲一個應用程序。

0

我以前升級到面料,也沒有問題。幾天後,我重新打開了同一個項目,並且遇到了crashlytics.h文件問題。

由於非編譯項目,我無法簡單地重新從插件重新安裝(我有很多CLS_LOG消息,並且引用了我項目中缺少的crashlytics.h文件,只需要很長時間就可以將它們刪除允許構建工作 - 重構在CLS_LOG上不起作用)。

所以不是,我從我的項目中刪除的crashlytics.framework並做了以下從插件恢復它直接:

  1. 再次下載插件面料,並雙擊壓縮文件解壓織物應用。

  2. 右鍵單擊該圖標,面料和「顯示包內容」

  3. 複製Crashlytics.framework文件夾到您的桌面,然後通過文件重新添加到您的項目 - >添加文件....

如果步驟3不爲你工作,你也可以添加crashlytics.framework到項目文件夾您的計算機上直接,然後也通過它相同的Xcode添加到您的項目列表,在步驟3,但如果您已經將文件放在那裏,請取消選中「如果需要複製項目」。

我的項目然後編譯並再次正常工作。

根據猜測爲什麼文件丟失?部分升級過程讓我刪除舊的框架,然後從插件運行腳本等。我認爲發生的事情是在我清空垃圾後發生的,有些參考文獻丟失了。我也遇到了將Crashlytics放到我的.gitignore文件中的問題,因此它從我所有的項目中消失,每次提交都不是很好。

希望這可以幫助別人!

1

就我而言,我從一箇舊的Crashlytics安裝程序通過Mac應用程序遷移到Cocoapods。很多這個問題的答案建議徹底刪除所有內容並重新開始。我開始這樣做,並注意到在Fabric's documentation中發現的代碼與Fabric應用程序中顯示的代碼之間存在差異,在此步驟中它會告訴您要將什麼複製到您的運行腳本構建階段。

面料的文檔具有環繞整個字符串雙引號:"${PODS_ROOT}/Fabric/Fabric.framework/run <Your_API_Key> <Your_Build_Secret>"

織物應用程序只有路徑周圍雙引號到run可執行:"${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

所以你刪除一切,重新開始之前,嘗試更新您運行腳本生成階段,以這樣的:

"${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>