development

Crashlytics 파일을 찾을 수 없습니다.

big-blog 2020. 12. 28. 22:26
반응형

Crashlytics 파일을 찾을 수 없습니다.


최근에 내가 컴파일하여 Apple에 제출 한 프로젝트를 열었습니다.

몇 달 동안 건드리지 않았지만 다음과 같은 이상한 컴파일 오류가 발생합니다.

#import <Crashlytics/Crashlytics.h>

오류는 다음과 같습니다.

'Crashlytics/Crashlytics.h' file not found

분명히 프레임 워크를 찾을 수 없지만 몇 달 전에 프로젝트가 작동했을 때 갑자기 중단 된 이유가 궁금합니다.

이유는 무엇입니까?

Xcode : 4.6.3 Mac OS X : 10.8.4


프로젝트 빌드 설정 (검색 경로)에서 프레임 워크 검색 경로추가 $(SRCROOT)하기 만하면 됩니다.

Crashlytics 설치 프로세스는 Crashlytics.framework프로젝트 폴더에이를 삭제 (또는 심볼릭 링크 생성)합니다.

Crashlytics.framework를 프로젝트 폴더 계층 구조의 더 깊은 곳으로 이동 한 경우 '재귀 적'을 오른쪽으로 설정하거나 Header Search Paths다음 에서 상위 폴더를 직접 가리 킵니다 .

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


프로젝트 및 디스크에서 프레임 워크를 삭제합니다. 최신 버전의 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


CocoaPods를 사용하여 Crashlytics 프레임 워크를 추가하는 것이 좋습니다. 더 이상 경로에 신경 쓸 필요가 없습니다.

Podfile :

pod 'Crashlytics', '~> 3.4.1'

dSYM 업로드를위한 스크립트 빌드 단계 :

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

수입:

#import <Crashlytics/Crashlytics.h>

나를 위해 이것은 일했습니다.

프로젝트에서 fabric 및 crashlytics 프레임 워크를 제거하고 프로젝트의 디스크에서 파일을 삭제하십시오.

appdelegate.m다음에 대해 추가 한 경우 파일 의 행을 주석으로 처리하십시오 .

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

[Fabric with:@[CrashlyticsKit]];

패브릭 앱에서 "새 앱"을 선택하고 Xcode 프로젝트 파일을 선택합니다.

빌드 스크립트를 다시 복사하고 지시에 따라 빌드하십시오. 빌드 단계는 위의 줄에 주석을 달아야하는 이유입니다. 해당 줄을 그대로두면 작동하지 않습니다.

빌드 스크립트가 실행되면 앱 창에서 프로젝트 네비게이터로 프레임 워크를 드래그하라는 메시지가 표시됩니다. 그러면 최신 버전의 프레임 워크 (.h 파일 포함)가 프로젝트에 복사됩니다.

수동으로 다운로드하고 다른 프로젝트에서 복사 해 보았지만 이것이 앱의 프레임 워크 파일을 잃어버린 후 복구 할 수있는 유일한 방법입니다.


제 경우에는 프레임 워크가 프로젝트 폴더에 있었지만 프로젝트 네비게이터에는 없었습니다. 나는 그것을 프로젝트로 드래그했고 모든 것이 잘 작동했습니다.


체크인 체크 아웃 후 github를 통해 분산 된 팀과 함께 작업하는 문제가 발생 했습니다 Crashlytics. 에는 Crashlytics.framework"Versions"라는 폴더가 하나만 있습니다. 콘텐츠의 버전 Crashlytics.framework을 다른 위치에 저장 한 다음 Crashlytics.framework나중에 복사하여 붙여 넣어야합니다 .


프로젝트 및 디스크 에서 Crashlytics.framework를 제거합니다 . 복사하고 다시 추가하십시오. 그것은 나를 도왔다.


제 경우에는 Mac 앱을 통해 이전 Crashlytics 설치에서 Cocoapods로 마이그레이션했습니다. 이 질문에 대한 많은 답변은 모든 것을 완전히 제거하고 다시 시작하는 것이 좋습니다. 이 작업을 시작했고, 실행 스크립트 빌드 단계에 복사 할 내용을 알려주는 단계에서 Fabric 문서 에있는 코드와 Fabric 앱에 표시된 코드 사이에 불일치를 발견했습니다 .

Fabric의 문서에는 전체 문자열을 묶는 큰 따옴표가 있습니다. "${PODS_ROOT}/Fabric/Fabric.framework/run <Your_API_Key> <Your_Build_Secret>"

Fabric 앱은 run실행 파일 의 경로를 큰 따옴표로 묶었습니다."${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

따라서 모든 것을 삭제하고 다시 시작하기 전에 Run Script Build Phase를 다음과 같이 업데이트하십시오.

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


작업 폴더의 이름을 변경했는데 Craslytics가 실패합니다. 빌드 설정 (검색 경로)에서 확인하십시오.

행운을 빕니다!


프레임 워크 검색 경로와 프레임 워크 파일 재배치 및 재 연결을 시도했습니다. 빌드 설정 (라이브러리와 바이너리 연결 섹션)을 확인했지만 오류가 지속되었습니다.

마지막으로 프레임 워크를 다시 설치했는데 2-3 분 밖에 걸리지 않습니다. Crashlytics.framework를 루트 디렉토리의 다른 하위 폴더로 재배치했기 때문에 문제가 발생할 수 있지만 정확한 이유는 확실하지 않습니다.

  • Crashlytics와 관련된 모든 항목 삭제
  • crashlytics 앱을 시작하고 로그인 한 후 프로젝트를 선택하십시오.
  • 실행 스크립트 추가
  • .framework 파일을 끌어다 놓습니다 (루트 폴더에 보관했습니다).
  • importstartWithAPIKey문을 다시 추가

  1. 프로젝트에서 Crashlytics 프레임 워크를 완전히 제거하면 앱 빌드 단계 실행 스크립트에 셸 스크립트가 포함됩니다.
  2. 가이드에 따라 패브릭을 다시 설치하면 모든 것이 정상입니다.

I had previously upgraded to Fabric and had no issues. A couple of days later, I reopened the same project and had the missing crashlytics.h file problem.

I couldn't simply reinstall from the plugin due to a non compiling project (I had so many CLS_LOG messages and references to the missing crashlytics.h file in my project, it would have taken a long time to remove them just to allow the build to work - refactor wouldn't work on CLS_LOG).

So instead, I deleted the crashlytics.framework from my project and did the following to reinstate it from the plug in directly:

  1. Download the Fabric plugin again and double click the zip file to unpack the Fabric application.

  2. Right click the Fabric icon and "Show Package Contents"

  3. Copy the Crashlytics.framework folder to your Desktop and then re-add it to your project via File -> Add Files to ....

If step 3 doesn't work for you, you can also add crashlytics.framework to your project folder on your computer directly, and then also add it into your project list via Xcode same as in step 3 but uncheck "Copy Items if Needed" as you already put the files there yourself.

My project then compiled and worked fine again.

In terms of a guess as to why the file went missing? Part of the upgrade process got me to delete the old frameworks and then run the scripts etc. from the plugin. I think what happened is later when I emptied my trash, that some references were lost. I also had the problem where I'd put Crashlytics into my .gitignore file so it disappeared out of ALL my projects every committed which wasn't great.

Hope this helps someone!

ReferenceURL : https://stackoverflow.com/questions/17754233/crashlytics-file-not-found

반응형