web-dev-qa-db-fra.com

comment déboguer quand réagit l'application native ne démarre pas sur le périphérique ios

lorsque je lance l'application react-native, elle commence toujours, aussi longtemps que je la connecte au Mac.

Dès que je déconnecte l'iphone, l'application se bloque généralement au démarrage et se bloque, sans autre message d'erreur . Mais d'autres erreurs s'afficheront à l'écran (erreurs signalées en rouge et jaune).

Lorsque je double-clique sur le bouton d'accueil, étrangement, l'application semble être dans un état démarré, mais je ne suis pas en mesure d'y basculer.

Comment pouvez-vous déboguer au mieux un tel comportement et trouver les causes du comportement étrange au démarrage?

Mettre à jour:

J'ai trouvé ces erreurs

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

suivi de (chaque seconde)

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

installer:

react-native-cli: 1.0.0 react-native: 0.32.0-rc.0 réaction: 15.3.0

Xcode 8 beta 4, iOS 10

14
radosch

Essayez de créer l'application en mode release. 

Modifier le schéma

  • Sélectionnez l'onglet Exécuter
  • Sélectionnez l'onglet Info
  • Changer la configuration de construction en version
  • Construire et exécuter le projet

Lorsque votre appareil est connecté à Xcode, Xcode effectue des actions/optimisations et joint le débogueur. Parfois, ces actions empêchent d'afficher des erreurs. Si vous exécutez votre application en mode de publication, ces actions sont omises et l'application se bloque. 

5
Daniel Sumara

avez-vous essayé de construire le jsBundle pour utiliser l'application hors connexion. ?

0
Vikram Belde

Dans le dossier ios, recherchez et remplacez le code dans Info.plist fichier:

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

avec 

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

Ensuite, lancez: react-native run-ios

0
Pham Ngoc Quynh

Je voyais cette erreur parce que l'application appelait une API pour obtenir des données d'un serveur distant et que l'appareil ne disposait pas d'une connexion Internet. L'erreur a disparu lorsque l'appareil était connecté à Internet.

0
M.A.Naseer