2016-08-08 10 views
14

starten, wenn ich die react-native App starte, es startet immer, solange ich es mit dem Mac verbunden habe.wie debuggen, wenn native App reagiert nicht auf ios Gerät

Sobald ich das iphone trennen, hängt die App meist beim Start und stürzt ab, ohne weitere Fehlermeldungen. Aber andere Fehler werden auf dem Bildschirm angezeigt (rot und gelb markierte Fehler).

Wenn ich den homebutton, seltsamerweise, doppelklicke, scheint die App in einem gestarteten Zustand zu sein, aber ich bin nicht in der Lage, darauf zu wechseln.

Wie können Sie am besten so ein Verhalten debuggen und die Dinge finden, die das seltsame Startverhalten verursachen?

Update:

Ich fand diese Fehler

2016-08-08 16:25:23.604 [warn][tid:main][RCTEventEmitter.m:54] Sending `websocketFailed` with no listeners registered. 
2016-08-08 16:25:23.612113 PhoenixApp[525:64778] Sending `websocketFailed` with no listeners registered. 
2016-08-08 16:25:23.742 [warn][tid:com.facebook.react.JavaScript] The regenerator/runtime module is deprecated; please import regenerator-runtime/runtime instead. 
2016-08-08 16:25:23.741927 PhoenixApp[525:65027] The regenerator/runtime module is deprecated; please import regenerator-runtime/runtime instead. 
2016-08-08 16:25:23.860 [info][tid:com.facebook.react.JavaScript] Running application "PhoenixApp" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF 
2016-08-08 16:25:23.860251 PhoenixApp[525:65027] Running application "PhoenixApp" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF 
2016-08-08 16:25:24.139 [info][tid:com.facebook.react.JavaScript] null 
2016-08-08 16:25:24.138808 PhoenixApp[525:65027] null 

gefolgt von (jede Sekunde)

2016-08-08 16:31:43.159749 PhoenixApp[525:64956] [] __nw_connection_get_connected_socket_block_invoke 176 Connection has no connected handler 
2016-08-08 16:31:45.372329 PhoenixApp[525:65445] [] __nw_connection_get_connected_socket_block_invoke 177 Connection has no connected handler 
2016-08-08 16:31:47.575208 PhoenixApp[525:64955] [] __nw_connection_get_connected_socket_block_invoke 178 Connection has no connected handler 
2016-08-08 16:31:49.788935 PhoenixApp[525:65445] [] __nw_connection_get_connected_socket_block_invoke 179 Connection has no connected handler 
2016-08-08 16:31:51.970877 PhoenixApp[525:64955] [] __nw_connection_get_connected_socket_block_invoke 180 Connection has no connected handler 
2016-08-08 16:31:54.173791 PhoenixApp[525:65445] [] __nw_connection_get_connected_socket_block_invoke 181 Connection has no connected handler 

AppDelegate.m

/** 
* Copyright (c) 2015-present, Facebook, Inc. 
* All rights reserved. 
* 
* This source code is licensed under the BSD-style license found in the 
* LICENSE file in the root directory of this source tree. An additional grant 
* of patent rights can be found in the PATENTS file in the same directory. 
*/ 

#import "AppDelegate.h" 

#import "RCTBundleURLProvider.h" 
#import "RCTRootView.h" 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSURL *jsCodeLocation; 

    [[RCTBundleURLProvider sharedSettings] setDefaults]; 
    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; 

    RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 
                 moduleName:@"PhoenixTrello" 
               initialProperties:nil 
                launchOptions:launchOptions]; 
    rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; 

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    UIViewController *rootViewController = [UIViewController new]; 
    rootViewController.view = rootView; 
    self.window.rootViewController = rootViewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

@end 

Setup:

reagieren-native-cli: 1.0.0 reagieren-native: 0.32.0-rc.0 reagieren: 15.3.0

Xcode 8 Beta 4, 10 iOS

+0

Versteh Sie Fehler auf Xcode direkt vor das Gerät zu trennen? Haben Sie versucht, eine leere Komponente im Stamm Ihrer App zu rendern, um zu sehen, ob das funktioniert? Versuchen Sie es einzugrenzen, wenn das Problem in Ihrem JS-Code oder nativen Teil liegt. Auch welche reaktions-native Version verwendest du? – nabn

+0

ok, Ill versuchen, dass.das Problem besteht seit Versino 0.28, jetzt verwende ich 0.32.rc-0 – radosch

+0

Ich aktualisierte die Frage mit Fehlern, während das Gerät angeschlossen ist. – radosch

Antwort

5

Versuchen App in Version bauen Modus.

bearbeiten Schema

  • Wählen Sie Run Registerkarte
  • Select Register Info
  • ändern Build-Konfiguration
  • Build and run Projekt

freizugeben, während Ihr Gerät xCode verbunden ist, xCode führt einige Aktionen/Optimierungen durch und fügt debuger hinzu. Manchmal verhindern diese Aktionen das Anzeigen von Fehlern. Wenn Sie Ihre App im Veröffentlichungsmodus ausführen, werden diese Aktionen ausgelassen und die App stürzt ab.

+0

Vielen Dank! Ich habe versucht, mehr Infos zu bekommen (siehe aktualisierte Frage) Vielleicht haben Sie eine Ahnung? – radosch

0

haben Sie versucht, das jsBundle zu erstellen, um die App Offline zu verwenden. ?

+0

sollte dies automatisch geschehen? Ist es nicht? Ich aktualisiere den Beitrag mit dem AppDelegate.m – radosch

0

Ich habe diesen Fehler festgestellt, weil die App eine API aufgerufen hat, um Daten vom Remote-Server zu erhalten, und das Gerät keine Internetverbindung hatte. Der Fehler ist verschwunden, als das Gerät mit dem Internet verbunden war.

0

Suchen Sie im ios-Ordner Code in Info.plist Datei:

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <false/> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>localhost</key> 
      <dict> 
       <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
      </dict> 
     </dict> 
    </dict> 

mit

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 

Dann laufen: react-native run-ios

Verwandte Themen