2016-08-04 13 views
6

Niedawno zacząłem otrzymywać ten błąd (szczegółowy błąd poniżej) w mojej aplikacji mobilnej na iOS zbudowanej przy użyciu react-native. Dzieje się tak tylko wtedy, gdy próbuję uruchomić aplikację przez telefon za pomocą Option 2, która ma zostać załadowana za pomocą statycznego pakietu. Próbowałem:NSInternalInconsistencyException: bundleURL musi mieć wartość zerową, jeśli nie implementuje loadSourceForBridge.

  • Czyste i odbudować w Xcode
  • cache kasujący oraz run reagować Packager
  • odinstalować aplikację na telefon
  • Coming z systemu Windows tle, Próbowałem również restartować maszynę

błąd w Xcode

2016-08-04 09:34:37.611 GalarmApp[367:165469] *** Assertion failure in 
-[RCTBatchedBridge loadSource:](), /Users/abc/Projects/GalarmApp/node_modules/react-native/React/Base/RCTBatchedBridge.m:180 2016-08-04 09:34:37.613 GalarmApp[367:165469] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'bundleURL must be non-nil when not implementing loadSourceForBridge' 
*** First throw call stack: (0x182b32db0 0x182197f80 0x182b32c80 0x1834b81c0 0x1000af788 0x1000adefc 0x1000adca4 0x1000e73d8 0x1000e7368 0x1000e6700 0x1000e643c 0x10005a254 0x10003cebc 0x10003c214 0x10003966c 0x100039b18 0x187d069c0 0x187f36184 0x187f3a5f0 0x187f37764 0x1844d37ac 0x1844d3618 0x1844d39c8 0x182ae909c 0x182ae8b30 0x182ae6830 0x182a10c50 0x187cff94c 0x187cfa088 0x10003bee0 0x1825ae8b8) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb) 

Widzę, że ten problem został wydrukowany here w kodzie, ale w najlepszym razie jestem początkującym twórcą iOS i nie wiem jak rozwiązać ten problem.

Proszę mi pomóc w rozwiązaniu tego problemu. Dzięki!

kod w AppDelegate.swift złożyć

/** 
* Loading JavaScript code - uncomment the one you want. 
* 
* OPTION 1 
* Load from development server. Start the server from the repository root: 
* 
* $ npm start 
* 
* To run on device, change `localhost` to the IP address of your computer 
* (you can get this by typing `ifconfig` into the terminal and selecting the 
* `inet` value under `en0:`) and make sure your computer and iOS device are 
* on the same Wi-Fi network. 
*/ 
// let jsCodeLocation = NSURL(string: "http://localhost:8081/index.ios.bundle?platform=ios&dev=true") 


/** 
* OPTION 2 
* Load from pre-bundled file on disk. The static bundle is automatically 
* generated by "Bundle React Native code and images" build step. 
*/ 
let jsCodeLocation = NSBundle.mainBundle().URLForResource("main", withExtension: "jsbundle") 

Jak widać, mam wykomentowane Option 1 i komentarzem out „Option 2`. Uruchomiłem tę samą aplikację w ten sposób na urządzeniu jak 100 razy. Nie wprowadziłem żadnych zmian w kodzie, ale nagle zauważyłem powyższy błąd.

+0

Powinieneś dodać adres URL pakietu w AppDelegate.m, jeśli używasz aplikacji na prawdziwym urządzeniu. – Sriraman

+0

@Sriraman Adres URL pakietu musi znajdować się w pliku AppDelegate. Nie wprowadziłem żadnych zmian w kodzie w AppDelegate i wielokrotnie uruchamiałem to samo na urządzeniu. Podejrzewam, że ma to coś wspólnego z pakietem, który nie tworzy wymaganego pliku js. –

+1

Proszę odnieść się do zaakceptowanej odpowiedzi na to pytanie, aby uzyskać więcej informacji http://stackoverflow.com/questions/38780325/running-react-native-app-on-device-using-offline-bundle/38780622#38780622. –

Odpowiedz

1

Ten błąd można również uzyskać, jeśli nie podpisujesz poprawnie aplikacji. Sprawdź ustawienia i ostrzeżenia Xcode:

3

Wystarczy, że dodasz dla mnie krótki moment "doh". Jeśli używasz symulatora i otrzymujesz to, upewnij się, że menedżer pakietów działa, gdy uruchomisz aplikację. Jeśli nie, może na to narzekać.

0

W moim przypadku włączam ustawienia serwera proxy na moim komputerze Mac, co powoduje problem. Wyłączenie ustawień proxy sieci rozwiązuje mój problem.

Powiązane problemy