如何通过 Xcode 将 React Native iOS 应用程序构建到设备?
Posted
技术标签:
【中文标题】如何通过 Xcode 将 React Native iOS 应用程序构建到设备?【英文标题】:How do I build React Native iOS app to device through Xcode? 【发布时间】:2015-06-01 19:59:59 【问题描述】:我尝试将AwesomeProject
应用程序构建到设备。构建成功并显示初始屏幕,但随后我看到红色的“无法连接到开发服务器”屏幕。它说“确保节点服务器正在运行 - 从 React root 运行 'npm start'。”
看起来节点服务器已经在运行,因为当我执行npm start
时,我收到一条EADDRINUSE
消息,表示该端口已在使用中。
【问题讨论】:
我想知道它是否与应用程序在哪里寻找服务器有关。如果它在模拟器中运行(这是它在演示中所做的),那么服务器将是localhost
。但由于这是在不同的设备上运行的,所以 'localhost' 不会是寻找服务器的地方。我看到localhost
硬编码在packager.js
脚本中。
【参考方案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
【讨论】:
【参考方案2】:-
查看您的 AppDelegate.m 文件
找到“OPTION 1”和“OPTION 2”注释块。它们位于“@implementation AppDelegate”行之后。
确保块中只有最后一行被取消注释。
对于您选择的选项,请务必按照有关如何加载文件的说明进行操作。
另外请注意,您的电脑和手机必须连接到同一个 wifi 网络。
根据AppDelegate.m中的表扬:
要在设备上运行,请将
localhost
更改为您计算机的 IP 地址,并确保您的计算机和 iOS 设备在同一个 Wi-Fi 网络上。
【讨论】:
【参考方案3】:从设备访问开发服务器 您可以使用开发服务器在设备上快速迭代。为此,您的笔记本电脑和手机必须在同一个 wifi 网络上。
-
打开 iOS/AppDelegate.m
将 URL 中的 IP 从 localhost 更改为笔记本电脑的 IP
在 Xcode 中选择您的手机作为构建目标,然后按“构建并运行”
ps:http://facebook.github.io/react-native/docs/runningondevice.html#content
【讨论】:
有没有办法检测出楼机的ip地址自动使用,不用每次都手动设置?【参考方案4】:另一个潜在问题(这发生在我身上):即使您进行了所有必要的代码更改(参见http://moduscreate.com/automated-ip-configuration-for-react-native-development/ 以获得良好的演练)、启动服务器等,它仍然可能因为@987654322 而失败@。您需要将您的 IP 地址添加到应用程序的 Info.plist
文件中的 NSExceptionDomains
列表中,或者完全禁用 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>
【讨论】:
对我来说似乎不是解决方案 @jacks205 解决什么问题?【参考方案5】:这应该不再是问题。您应该能够关注文档,其中说明了以下内容:
-
通过 USB 连接您的设备
将您的设备连接到与运行 Xcode 的笔记本电脑相同的 wifi 网络
在 Xcode 界面中单击 build in run(左上角的“播放”按钮)并选择您的设备。
【讨论】:
仍然是个大问题以上是关于如何通过 Xcode 将 React Native iOS 应用程序构建到设备?的主要内容,如果未能解决你的问题,请参考以下文章
升级mac os和升级xcode后如何运行`npm react-native run-ios`?
Xcode 10 - 无法构建 React Native 应用程序
如何使用 Xcode 12 Beta 4 构建 React-Native 项目?
将 XCode 更新为 XCode 12.2 / React Native 0.63.2 构建失败