program tip

iOS의 Crashlytics는 Fabric 앱의 '프로젝트 빌드'를지나 진행하지 않습니다.

radiobox 2020. 10. 20. 07:29
반응형

iOS의 Crashlytics는 Fabric 앱의 '프로젝트 빌드'를지나 진행하지 않습니다.


iOS 앱용 Crashlytics를 설치하고 있습니다. 사이트 링크를 통해 다운로드하고 프레임 워크 통합, 실행 스크립트 추가 등의 모든 단계를 거쳤습니다.

문제가 발생하여 프레임 워크를 제거하고 다시 시작하여 새로 설치하기로 결정했습니다. 하지만 Fabric 앱이 최신 버전으로 업데이트되었으며 이제 Crashlytics를 앱에 다시 설치하려고 할 때 프레임 워크를 다시 설치할 수있는 옵션이 제공되지 않습니다. "설치"를 클릭하면 바로 "프로젝트 빌드"화면으로 이동합니다. 통과 할 수 없습니다.

프로젝트 구성에 도움을 받으려면 ⌘B를 눌러 지금 빌드하십시오.

를 누르면 ⌘B빌드되고 아무 일도 일어나지 않습니다. 문제는 내 프로젝트에서 Crashlytics 및 Fabric 프레임 워크를 제거했기 때문이라고 생각하지만 다시 추가하는 방법을 볼 수 없습니다. Fabric 앱은 해당 옵션을 제공하지 않습니다.


댓글에서 답변으로 이동.

Fabric의 Mike입니다. Mac 앱을 통해 백업 한 경우 왼쪽 상단의 화살표를 클릭하고 "+ 새 앱"을 클릭하면 모든 항목을 다시 추가하는 과정을 안내합니다.


타겟의 빌드 설정으로 이동합니다. "디버그 정보 형식"을 찾습니다. 디버그 및 릴리스의 "DWARF"에서 "dSYM 파일이있는 DWARF"로 설정합니다.


리소스 탐색기를 확인하면 다음 메시지가 표시 될 수 있습니다.

"DEBUG_INFORMATION_FORMAT은 모든 구성에 대해 dwarf-with-dsym으로 설정되어야합니다. 이는 타이밍 문제 일 수도 있습니다. Fabric 실행 스크립트 빌드 단계가 마지막 빌드 단계이고 다른 스크립트가 Xcode가 생성 한 위치에서 dSYM을 이동하지 않았는지 확인하십시오. . 경로에서 eCreditWebWrapper.app.dSYM을 처리 할 수 ​​없습니다. "

빌드 설정으로 이동하여 "디버그 정보 형식"을 검색합니다. "디버그"가 "dSYM 파일이있는 DWARF"로 설정되어 있는지 확인합니다.

dSYM 파일이 없으면 Fabric이 작동하지 않습니다.


이 문제를 다음과 같이 해결했습니다. 위의 조언에 따라 crashlytics에 새 앱을 추가하기 시작했습니다. 새로운 "스크립트 실행"빌드 단계 추가에 도달했을 때 해당 텍스트를 복사하여 이전 단계 (Crashlytics로 생성) 위에 붙여 넣었습니다. 또한 "설치할 때만 스크립트 실행"을 선택 취소했습니다.

그런 다음 새 앱 추가를 취소하고 업그레이드로 다시 진행했습니다. 이 순간 앱을 빌드하면 다음 단계로 넘어갈 수 있으며 더 이상 해당 화면에 갇히지 않습니다.


나도 빌드 단계에 갇혀 있었다.

또한 선택을 취소 "Run script only when installing"하고 command + B를 다시 누른 다음 다음 단계로 넘어갑니다.


스크립트가 실행되고 있지 않으면 스크립트 실행 섹션에서 "설치할 때만 스크립트 실행"을 확인했을 수 있습니다. 도움이 되길 바랍니다


Xcode 10.2.1의 경우 Fabric Mac 앱을 통한 자동 설치가 더 이상 작동하지 않습니다. 새 앱 단계별 가이드를 통해 새 앱을 추가 할 수 없습니다 .

수동 설치 지침 을 따라야합니다 . 2 개의 프레임 워크를 다운로드하여 Xcode 작업 공간에 추가 한 다음 빌드 스크립트 실행 단계 (및 관련 패브릭 코드)를 추가 한 다음 앱을 빌드하십시오. 마지막으로 (매우 중요) 실제 장치에서 실행합니다 .

앱이 성공적으로 시작되면 Fabric 대시 보드와 Fabric Mac 앱에서 새 앱 정보를 사용할 수 있습니다 (새 앱을 보려면 앱을 다시 시작해야 함).


단계는 다음과 같습니다.

  1. 2 개의 프레임 워크 다운로드
  2. App Delegate가있는 프로젝트로 드래그하십시오 ( "필요한 경우 항목 복사"를 선택했는지 확인하십시오).
  3. Xcode에서 프로젝트 / 워크 스페이스 컴파일
  4. 여기에 설명 된 대로 "스크립트 실행 단계"를 추가 하십시오 . Xcode 10+에는 다음 위치에서 추가 구성이 필요합니다.Input Files
  5. importApp Delegate에 필수 및 초기화 코드 추가
  6. Fabric API 키 추가 Info.plist
  7. 다시 컴파일
  8. 실제 기기에서 앱을 실행하세요. CrashlyticsXcode 로그에 줄이 표시됩니다 . 로그가 나타나지 않으면 활성 구성표에 OS_ACTIVITY_MODE설정이 포함되어 있는지 확인합니다 . default현재 설정이 인 경우로 설정합니다 disabled.
  9. Crashlytics 행이 나타나면 수동 설치가 작동 중임을 의미합니다. Fabric 온라인 대시 보드에 앱이 표시됩니다.

TL; DR

구성표-> 구성표 편집-> 빌드 구성을 "Release"로 설정하십시오.

설명:

가장 많이 득표 한 대답 은 옳다고 들리지만 디버그 빌드에서 crashlytics가 필요하지 않은 상황이 있습니다 (코드를 개발하고 실험 할 때 충돌을 보내길 원하는 사람은 누구입니까?). 이 경우 디버그 컴파일 플래그를 확인하여 (이 답변의 범위를 벗어남) crashlytics를 비활성화하고 설치 중에 처음으로 앱을 빌드했음을 crashlytics에 알리기 위해 릴리스 용 앱을 빌드해야합니다.


오늘도 같은 문제가 발생했습니다. 문제는 내가 실행 스크립트가 없다는 것입니다.

./Fabric.framework/run <api key>

내 프로젝트에서. 이것을 다시 넣으면 모든 것이 완벽하게 작동했습니다. 또한 확실히하기 위해 프로젝트를 정리하고 파생 데이터를 삭제했습니다.


"Fabric의 최소 iOS 버전이 6.0"이므로 배포 대상 버전을 확인해야합니다.


빌드 대상을 'Generic iOS Device'로 설정하고 Product> Archive 메뉴에서 아카이브를 만든 후에 만 ​​Fabric 앱에서 설치 프로세스를 계속할 수있었습니다.

단순히 앱을 빌드하거나 에뮬레이터에서 실행하는 것은 Fabric 앱이 계속 진행되도록 트리거하지 않는 것 같습니다.


스크립트 실행 빌드 단계에는 다음과 같은 호출이 있습니다.

./Crashlytics.framework/run <your_api_key_here>

다음과 같은 특정 빌드에서만 트리거하도록 몇 가지 조건을 추가했을 수 있습니다.

releaseConfig="Release"

if [ "$releaseConfig" = "${CONFIGURATION}" ]; then  
    echo "Running Crashlytics"
    ./Crashlytics.framework/run <your_api_key_here>
fi

⌘B에서만 트리거되지 않도록

참조 https://dev.twitter.com/crashlytics/ios/advanced-setup를


제 상황에서는 모든 단계를 올바르게 수행했지만 '빌드 단계 추가'단계에서 멈췄습니다. 그런 다음 패브릭을 다시 시작 했고 모든 것이 잘 작동합니다.

다른 가능한 조치도 있습니다.

1) Fabric, Xcode 및 Mac을 다시 시작하십시오. 2) 또한 Cocoapods를 사용하는 경우 빌드 단계 라인을

./Crashlytics.framework/run [yourAPIKey] 

...에

"${PODS_ROOT}/Fabric/run" [yourAPIKey]

3) 프로젝트 빌드 후 Fabric이 응답을 멈출 경우 잠시 기다리십시오. 내 Mac에서는 1 분 정도 걸렸습니다.


Xcode 10 을 사용하는 경우 .

프로젝트 네비게이터-> 프로젝트-> 대상-> 빌드 단계-> 패브릭 용 스크립트 실행-> 입력 파일-> "+"(입력 파일 추가)-> 필드를 지우고이 줄을 지나치십시오.

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

반드시 제거 이 :$(SRCROOT)/

여기에 이미지 설명 입력


추가하는 실행 스크립트가 실제 대상에 추가되는지 확인하십시오. 테스트 대상에 추가하면 실제 대상에 추가 할 때까지 진행되지 않습니다.


None of the solutions here worked for me. The scenario for me was someone else added the Fabric framework to our project and committed it to the repo. The run script on their computer launched/triggered the Fabric Plugin, but would not launch/trigger on mine, although it did not report errors.

The solution was to create a separate project, using Cocoapods download the same version of Fabric, replace the run script in our project/repo (and the one referenced in the target's run script) with the downloaded version from Cocoapods. Rebuild and then the plugin would respond.

Comparing the two run script files, they are drastically different, but the run script from Cocoapods was not a flat text file and it was unreadable. So I'm not sure what was different between the scripts, but we somehow got different versions of the script while using the same version of Fabric.


What I did wrong was adding the script to the pods project build phase instead of the main project build phase, adding it to the main projects build phase solved the problem.


If you are duplicating the target, remove the run script from build phase and add it again to solve the issue.


If you have multiple TARGETS,

check your Schema selection is correct before you build project.


For Xcode 10. Add your app's built Info.plist location to the Build Phase's Input Files field:

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

This solved my issue i hope this can solve others issue.


Thanks, I solved the problem by removing folders:

~ / Library / Caches / com.crashlytics.data
~ / Library / Caches / com.crashlytics.mac

It turned out I had not enough permissions to create new project in Fabric. Upgrading from Member to Admin resolved the issue.


In my case, removing an app from helped. 1) Remove the app from Fabric. 2) Follow all the steps again to add the app and install Crashlytics.


Nothing helped me. Now Fabric catches my archive creation. But I create the archives via fastlane's build_app.


Go to folder /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/<CURRENT_IOS_SDK>/usr/lib/ and delete all .dylib files.

It worked for me.

참고URL : https://stackoverflow.com/questions/28117477/crashlytics-in-ios-wont-proceed-past-build-your-project-in-fabric-app

반응형