2017-06-05 9 views
0

私はSwiftにiosアプリを持っています。アプリは正常に動作し、xcodeからローカルにアップロードされたときにクラッシュしません。しかし、testflightからアップロードしたときにアプリがクラッシュする。 コードに間違いがないことがわかりました。 私はアプリケーションでCrashlyticsを実装しましたが、それは次のレポートを与えました。iOSアプリはTestFlightビルドでのみクラッシュする

Crashed: com.apple.main-thread 
EXC_BREAKPOINT 0x0000000100160fe4 

Crashed: com.apple.main-thread 
0 App      0x100160fe4 HomeViewController.viewDidLoad() ->() (HomeViewController.swift:57) 

1 App      0x100161014 @objc HomeViewController.viewDidLoad() ->() (HomeViewController.swift) 

2 UIKit       0x18c373ec0 -[UIViewController loadViewIfRequired] + 1036 

3 UIKit       0x18c38b94c -[UIViewController __viewWillAppear:] + 132 

4 UIKit       0x18c5101d4 -[UINavigationController _startCustomTransition:] + 1144 

5 UIKit       0x18c42ab78 -[UINavigationController _startDeferredTransitionIfNeeded:] + 676 

6 UIKit       0x18c42a7e0 -[UINavigationController __viewWillLayoutSubviews] + 64 

7 UIKit       0x18c42a744 -[UILayoutContainerView layoutSubviews] + 188 

8 UIKit       0x18c37107c -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1200 

9 QuartzCore      0x189561274 -[CALayer layoutSublayers] + 148 

10 QuartzCore      0x189555de8 CA::Layer::layout_if_needed(CA::Transaction*) + 292 

11 QuartzCore      0x189555ca8 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 32 

12 QuartzCore      0x1894d134c CA::Context::commit_transaction(CA::Transaction*) + 252 

13 QuartzCore      0x1894f83ac CA::Transaction::commit() + 504 
14 QuartzCore      0x1894f8e78 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 120 

15 CoreFoundation     0x1861f09a8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 

16 CoreFoundation     0x1861ee630 __CFRunLoopDoObservers + 372 

17 CoreFoundation     0x1861eea7c __CFRunLoopRun + 956 

18 CoreFoundation     0x18611eda4 CFRunLoopRunSpecific + 424 

19 GraphicsServices    0x187b88074 GSEventRunModal + 100 

20 UIKit       0x18c3d9058 UIApplicationMain + 208 

21 App      0x1000d8688 main (NewProductData.swift:18) 

22 libdyld.dylib     0x18512d59c start + 4 

私はこのレポートから何かを理解していません、誰かが知っていれば私を助けてください。ここで

は、のviewDidLoad

override func viewDidLoad() { 
    super.viewDidLoad() 
    Giving instance of HomeViewController to AppDelegate 
     let appDele = UIApplication.shared.delegate as! AppDelegate 
     appDele.homeVC = self 
    token = FIRInstanceID.instanceID().token()! 
//Method to handle Firebase token 
    UserDefaults.standard.set(token, forKey: "Notificationtoken") 
    print("@@@@@@@@@@@@@@@@@@@@@@@ token provided is \(String(describing: token))") 
    let tokenstr = UserDefaults.standard.value(forKey: "Notificationtoken") as! String 
    if(token == tokenstr){ 
     handleFCMToken(token: tokenstr) 
    } 
    else{ 
     handleFCMToken(token: token!) 

    } 

    setUpNavBar() 
    setPopUpImage() 
    setUpcarousel() 
    setUpDelegates() 
    let help = Helper() 

    help.setUpGoogleAnalytics(screenName: "Home") 

    self.presenter = HomeViewPresenter(homeView: self) 
    presenter.getCarousel() 
    if(showProfile){ 
     ProfileClicked() 
    } 
    // Do any additional setup after loading the view. 
} 

であり、ここでviewWillAppear

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    setUpUI() 


} 

とsetupUI

func setUpUI(){ 
    let wholesaler:Wholesaler = Helper.getWsProfile() 

    DispatchQueue.main.async { 
     self.wholesalerName.text = "Hello, \(wholesaler.wholesaler_name)" 
     self.pdsPoints.text = "\(wholesaler.pdsPoints!)" 
     self.visibilityPoints.text = "\(wholesaler.visibilityPoins!)" 
    } 
    iconNameString = ["SMS","Customer\n Groups","Visibility\n Contest","My\n Earnings","\(wholesaler.lastSchemeMonth!)\n Schemes","App\n News", "", "Contact\n Us"] 

} 
+0

役立ちますホーム。あなたは 'viewDidLoad()'で何をしていますか? – Larme

+0

'HomeViewController.swift'ファイルの57行目を送信してください。 –

+0

これは、あなたのアプリを更新**するのに何か問題があることを意味する可能性があります。以前にインストールされたことのないデバイスでもクラッシュしますか?私たちのアプリのsqliteについても同様の問題がありました。解決策は、テスターに​​アプリを削除するように指示することでした。その後、それを新しくインストールします。もしあなたのケースが似ているかもしれませんが、それは – Honey

答えて

0

の方法は、私はあなたのHomeViewControllerのいくつかのコードを表示することは私たちに多くの洞察力を与えるだろうと考えています。

しかし、ここでいくつかのコメント:

    フルスタックわからない
  • が、そのはviewWillAppearが何らかの理由でviewDidLoad前に呼び出されていることを奇妙なようです。対応する方法でsuperを正しく呼び出していますか?
  • リリースモードとデバッグモードの計測器を使用してアプリをプロファイリングしてみましたか?これはスキーマ設定で管理できます。
  • もう一つのヒントですが、あなたのシナリオではそれが先進的だと思いますが、最適化レベルです。ターゲット設定に行き、Optimization Levelを検索すると、デバッグとリリースでは違うことに気付くでしょう。時には、複数のブロックやスレッドを持つ複雑なアルゴリズムがこの影響を受けることがあります。

それはあなたがHomeViewController` `の`のviewDidLoad() `上の問題を持っているようだ

+0

'viewdidLoad'のどの行が57ですか?コードを見ると、いくつかのアンラップシナリオに関連する可能性があります: 'token()!'は常に値を返しますか?これを確認してくださいhttps://stackoverflow.com/a/40014002/219777 – Omer

+0

'token = FIRInstanceID.instanceID()。token()! 'この行は57にあり、Xcodeでローカルに実行すると常に値を返します。 testflightのために私は確信していません、Crashlyticsのレポートはライン57でクラッシュしていることを示しています – Prathamesh

+0

正解! ...だから、何とかfirebaseのセットアップに問題があるはずです。申し訳ありませんが、私は推奨を提供するためのフレームワークに関する多くの経験はありませんが、私はその良い出発点だと思います!乾杯! – Omer

関連する問題