2017-12-08 1 views
0

Google에서 작성한 세 가지 프레임 워크를 사용하는 앱과 앱 확장 (키보드 및 iMessage 확장 프로그램)이 두 개 있습니다. 프레임 워크는 프로젝트의 일부이며 각 프레임 워크는 자체 목표를가집니다. 앱과 확장 기능은 이러한 프레임 워크에서 링크되며 우리는이를 사용하여 데이터베이스에 액세스하는 것과 같은 일반적인 작업을 수행합니다.프레임 워크의 예외로 인한 크래시 틱스 보고서

우리가 Crashlytics이

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool 
{ 
    Fabric.with([Crashlytics.self]) 

    ... more 
} 
다음

가 충돌, 오른쪽 링크 된 프레임 워크 중 하나에 발생한 경우에도 충돌을보고한다고처럼 AppDelegate에 초기화 한 경우? 앱, 앱 확장 및 프레임 워크 용 dSYM 파일이있는 경우 프레임 워크 코드에 충돌을 나타낼 수 있어야합니다. 맞습니까?

나는 crashlytics에 일들을 신뢰성있게보고하는 데 어려움을 겪고 있습니다. 주전 선 코드의 함수에 Crashlytics.sharedinstance().crash()을 입력하면 정상적으로 작동합니다. 나는 또한 0으로 나누기를 강제로 충돌을 강제 시도

@objc func onPreviewLongPress(_ notification : Notification) 
{ 
    if let userInfo = notification.userInfo, let collectionName = userInfo["collectionName"] as! String? { 
     let alert = UIAlertController(title: "", message: "Enter the code:", preferredStyle: .alert) 
     alert.addTextField { (textField) in 
      textField.text = "" 
     } 
     alert.addAction(UIAlertAction(title: "Cancel", style: .default, handler: nil)) 
     alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (_) in 
      let textField = alert.textFields![0] 
      // original code snipped 
      if textField.text!.doesContain("crash") { 
       self.callForCrash() 
      } 
     })) 
     self.present(alert, animated: true, completion: nil) 
    } 
} 

private func callForCrash() { 
    Crashlytics.sharedInstance().crash() // DOES NOT REPORT!!! 
} 

이 같은 UIAlertAction에서 함수 ...

private func callForCrash() { 
    let nom = 12; 
    let result = nom/zeroNum(13) 
    print(result) 
} 
// separate function to allow division by zero to get through swift parsing 
private func zeroNum(_ num: Int) -> Int { 
    return num - num; 
} 

이를 호출하는 경우뿐만 아니라보고하지 않습니다. 그러나 방금 알리미 바로 앞에 코드에 Crashlytics.sharedInstance().crash()을 넣으면 잘보고됩니다.

지난 몇 일 동안 설치 프로세스와 샘플 코드를 여러 번 해왔습니다.

  • 콘솔 내가 콘솔이없는 dSYM 파일에 문제가보고되지 않은 새로운 빌드 번호
  • 을 포함하여 시험에 노력하고있어 버전, 나는 비트 코드를 사용할 수없는
  • ,
  • 을 보여줍니다
  • 나는 건물입니다 '활성 구조를 단지'= 예 (I는 또한 아니오로 설정 시도),
  • 실행 스크립트는 응용 프로그램과 두 개의 앱 정보를위한 존재가 (아직 확장 테스트를 시도하지 않은)
  • Xc에서 실행 해 보았습니다. ode 설치 후 실행을 멈추는 경우
  • 기기 창 (Xcode 9.2)을 통해 애드혹 빌드 및 설치를 시도했습니다.
  • 충돌을 유발 한 다음보고 할 수 있도록 앱을 다시 시작합니다.

누구가 내가 놓친 것일 수 있습니까? 나는 arm64가 문제가되는 것에 대해 읽었지 만 그것은 꽤 오래 되었기 때문에 여전히 문제가 있는지 확신 할 수 없다. 로그에서 찾을 수있는 것이 있습니까, 작동하는지 아닌지 알려 줄 수 있습니까? 업데이트 동일한 ID (예 : 'com.mydomain.myapp')를 사용하는 Android 및 iOS 버전의 앱이 모두 예측할 수없는 동작을 일으킬 수 있습니까? 패브릭 콘솔에 별도로 표시됩니다.

TIA, 마이크

+0

복잡한 질문이 있으십니까? 모든 타겟에 대해 실행 스크립트 빌드 단계를 구축하도록 할 수 있습니까? 플랫폼간에 동일한 식별자를 사용하는 것은 중요하지 않습니다. 프로젝트에서 다른 번들 ID를 사용하고있는 경우이 원인이 될 수 있습니다. –

+0

Todd. 주석 주셔서 감사합니다. '모든 대상'이라고 말하면 프레임 워크를 의미하지 않는다고 가정합니다. 프레임 워크 자체에는 번들 ID가 없습니다. 앱, 키보드 확장 및 iMessage 확장 빌드 단계에서 실행 스크립트가 있습니다. 오늘 끝내려고 할 때 조사 할 다른 것을 권할 수 있습니까? – Mikey

+0

지금 막 프레임 워크에서 뭔가를 얻었습니다. 이름이 엉망이되었지만, 추락 한 기능을 찾는데 충분합니다. 잠시 후에 업데이트를 게시하겠습니다. – Mikey

답변

0

나는 기본 점이었다 프레임 워크에서 일어나는 충돌을보고 나타나지 않기 때문에 가서 답변으로이를 게시 할거야.앱 확장에 대해서도 이야기했기 때문에 부분적인 답변 일뿐입니다. 키보드 익스텐션에서 보고서를 받았지만 지금까지는 iMessage 확장 프로그램에 대한 보고서가 없습니다.

어쨌든 프레임 워크와 함께 작동하는 것으로 보입니다. 나는 우리가 내장 된 프레임 워크 중 하나를 가져다가 이러한 기능 추가 :

0으로 나누기가 응용 프로그램을 명중
public static func doCrash() { 
    func1() 
} 

private static func func1() { 
    func2() 
} 

private static func func2() { 
    let _ = 10/prepNum(5) 
} 

private static func prepNum(_ int:Int) -> Int { 
    return int - int 
} 

가 추락하고, 그것을 다시 시작한 후, 나는 다음과 충돌 보고서 얻었다 :

libswiftCore.dylib 
specialized _fatalErrorMessage(_:_:file:line:flags:) + 124 
1 CommonKit _T012CommonKit9LocalFileC5func233_BC978A475DDB24483E4F12A335D91E70LLyyFZ + 136 
2 CommonKit _T012CommonKit9LocalFileC5func133_BC978A475DDB24483E4F12A335D91E70LLyyFZ + 20 
3 CommonKit _T012CommonKit9LocalFileC7doCrashyyFZ + 20 
4 MyApp StickerViewController.swift line 369 
    StickerViewController.callFrameworkForCrash() ->() 

프레임 워크에 충돌을 완전히 나타낼 수있는 것처럼 보이지 않습니다. 그러나 우리는 결과 _T012 CommonKit를 보면 9 LocalFile에 우리가 CommonKit :: LocalFile.doCrash 추락 함수의 이름을 뽑을 수 C7 doCrash yyFZ().

앞으로 도움이되기를 바랍니다. iMessage 확장 프로그램에서 무언가를 얻으려고 노력할 것입니다.

마이크

관련 문제