我尝试将AwesomeProject
应用程序构建到设备。构建成功并显示初始屏幕,但随后我看到红色的“无法连接到开发服务器”屏幕。它说“确保节点服务器正在运行 - 从 React root 运行'npm start'。”
看起来节点服务器已经在运行,因为当我这样做时,npm start
我收到一条EADDRINUSE
消息,说端口已经在使用中。
我尝试将AwesomeProject
应用程序构建到设备。构建成功并显示初始屏幕,但随后我看到红色的“无法连接到开发服务器”屏幕。它说“确保节点服务器正在运行 - 从 React root 运行'npm start'。”
看起来节点服务器已经在运行,因为当我这样做时,npm start
我收到一条EADDRINUSE
消息,说端口已经在使用中。
从设备访问开发服务器您可以使用开发服务器在设备上快速迭代。为此,您的笔记本电脑和手机必须在同一个 wifi 网络上。
ps: http: //facebook.github.io/react-native/docs/runningondevice.html#content
另一个潜在问题(这发生在我身上):即使您进行了所有必要的代码更改(参见http://moduscreate.com/automated-ip-configuration-for-react-native-development/以获得良好的演练) , 启动服务器等,可能还是会因为App Transport Security失败。您需要将您的 IP 地址添加到NSExceptionDomains
应用程序Info.plist
文件的列表中,或者完全禁用 ATS(不鼓励 - 阅读上面的文章以了解原因)。
示例条目:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>YOUR-IP-HERE</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPSLoads</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>1.0</string>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
另请注意,您的计算机和手机必须连接到同一个 wifi 网络。
根据 AppDelegate.m 中的表扬:
要在设备上运行,请更改
localhost
您电脑的 IP 地址,并确保您的电脑和 iOS 设备在同一个 Wi-Fi 网络上。
在AppDelegate.m
:
To run on device, change localhost to the IP address of your computer, and make sure your computer and iOS device are on the same Wi-Fi network.
我在 react-native github 问题上发现了一个相关问题。
在没有服务器的情况下运行应用程序的说明:https ://github.com/facebook/react-native/issues/240
这应该不再是一个问题。您应该能够遵循文档,其中说明了以下内容: