如何通过Xcode为设备构建React Native iOS应用程序?

时间:2015-03-28 14:48:51

标签: react-native

我尝试将AwesomeProject应用构建到设备上。构建成功并且启动画面显示,但随后我看到一个红色的“无法连接到开发服务器”屏幕。它说“确保节点服务器正在运行 - 从React root运行'npm start'。”

看起来节点服务器已在运行,因为当我执行npm start时,我收到EADDRINUSE消息,说该端口已在使用中。

6 个答案:

答案 0 :(得分:10)

从设备访问开发服务器 您可以使用开发服务器在设备上快速迭代。为此,您的笔记本电脑和手机必须位于同一个无线网络上。

  1. 打开iOS / AppDelegate.m
  2. 将网址中的IP从localhost更改为笔记本电脑的IP
  3. 在Xcode中选择您的手机作为构建目标,然后按"构建并运行"
  4. PS:http://facebook.github.io/react-native/docs/runningondevice.html#content

答案 1 :(得分:5)

另一个潜在的问题(这发生在我身上):即使您进行了所有必要的代码更改(参见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>

答案 2 :(得分:2)

  1. 查看AppDelegate.m文件
  2. 找到选项1&#39;和&#39;选项2&#39;评论块。它们位于@implementation AppDelegate&#39;之后。线。
  3. 确保只取消注释块中的最后一行。
  4. 对于您选择的选项,请务必按照有关如何加载文件的说明进行操作。
  5. 另请注意,您的计算机和手机必须连接到同一个无线网络。

    根据AppDelegate.m的评价:

      

    要在设备上运行,请将localhost更改为您计算机的IP地址,并确保您的计算机和iOS设备位于同一Wi-Fi网络上。

答案 3 :(得分:1)

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问题上找到了related issue

在没有服务器的情况下运行应用程序的说明:https://github.com/facebook/react-native/issues/240

答案 4 :(得分:0)

答案 5 :(得分:-1)

这应该不再是一个问题。您应该能够按照文档进行操作,其中说明了以下内容:

  1. 通过usb连接您的设备
  2. 将设备连接到与运行Xcode的笔记本电脑相同的wifi网络
  3. 在您选择设备的Xcode界面中点击运行中的构建(&#34;播放&#34;左上角的按钮)。