2016-08-08 20 views
14

po uruchomieniu aplikacji reaguje natywnie, zawsze się uruchamia, o ile mam ją podłączoną do komputera Mac.sposób debugowania, gdy aplikacja natywna reaguje na urządzenie ios

Zaraz po odłączeniu iPhone'a, aplikacja zawiesza się najczęściej przy starcie i awarii, bez dalszych komunikatów o błędach. Ale inne błędy pojawią się na ekranie (czerwone i żółte oflagowane błędy).

Po dwukrotnym kliknięciu przycisku home, aplikacja wydaje się być w stanie początkowym, ale nie mogę go przełączyć.

Jak można najlepiej debugować takie zachowanie i znaleźć rzeczy powodujące dziwne zachowanie podczas uruchamiania?

Aktualizacja:

znalazłem te błędy

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 

następnie (każda sekunda)

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:

reakcji natywne cli: 1.0.0 reakcji natywne: 0.32.0-rc.0 reakcji: 15.3.0

Xcode 8 beta 4 IOS 10

+0

Czy masz jakieś błędy w Xcode tuż przed odłączeniem urządzenia? czy próbowałeś renderować pusty komponent w katalogu głównym aplikacji i sprawdzić, czy to działa? Spróbuj go zawęzić, jeśli problem dotyczy Twojego kodu JS lub części natywnej. Również używasz wersji natywnej w trybie reakcji? – nabn

+0

ok, spróbuję tego. Problem utrzymuje się od wersji 0.28, teraz używam 0.32.rc-0 – radosch

+0

Zaktualizowałem Pytanie z błędami, gdy urządzenie jest podłączone. – radosch

Odpowiedz

5

Spróbuj budowy aplikacji uwalnianie tryb.

Edycja schemat

  • Wybierz Run zakładka
  • Wybierz Info Zakładka
  • zmiana konfiguracji budowy do wydania
  • budować i projekt prowadzony

Podczas gdy urządzenie jest podłączone do Xcode, xCode wykonuje pewne działania/optymalizacje i dołącza debuger. Czasami te działania zapobiegają wyświetlaniu błędów. Jeśli uruchomisz aplikację w trybie zwolnienia, te działania zostaną pominięte, a aplikacja ulegnie awarii.

+0

Wielkie dzięki! Próbowałem uzyskać więcej informacji (patrz zaktualizowane pytanie), czy możesz mieć jakąś wskazówkę? – radosch

0

Czy próbowałeś zbudować jsBundle, aby korzystać z aplikacji offline. ?

+0

należy to zrobić automatycznie? czyż nie? Aktualizuję wpis przy użyciu AppDelegate.m – radosch

0

Widziałem ten błąd, ponieważ aplikacja dzwoniła do interfejsu API, aby uzyskać dane ze zdalnego serwera, a urządzenie nie ma połączenia z Internetem. Błąd zniknął, gdy urządzenie było podłączone do Internetu.

0

W folderze ios znajdź i zamień kod w Informacje.plist file:

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

z

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

Następnie uruchom: react-native run-ios