【发布时间】:2016-12-09 15:27:29
【问题描述】:
我使用 react native 框架创建了一个移动应用程序
但它只能通过 xcode 启动,如果我尝试从 iphone 打开应用程序它不会启动
当我通过 xcode (myapp.xcodeproj) 打开它时它工作正常,它在 iphone 上构建应用程序,然后打开它没有问题
可能是什么问题?
【问题讨论】:
标签: ios iphone react-native
我使用 react native 框架创建了一个移动应用程序
但它只能通过 xcode 启动,如果我尝试从 iphone 打开应用程序它不会启动
当我通过 xcode (myapp.xcodeproj) 打开它时它工作正常,它在 iphone 上构建应用程序,然后打开它没有问题
可能是什么问题?
【问题讨论】:
标签: ios iphone react-native
React Native 官网的设备上运行指南: https://facebook.github.io/react-native/docs/running-on-device.html
【讨论】:
我今天也遇到这个问题,把React Native从~32升级到39.2之后(好久没用了,就是想说)。
我通过以下操作修复了它:
完全禁用 ATS(不确定是否真的需要它,因为我想在没有连接服务器的情况下在本地运行设备,但此时我不敢问);您可以在此处阅读更多信息:https://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/。
在运行之前构建应用程序(我认为这是主要的事情)。所以我不记得以前这样做了,但是在我升级之后,这似乎是正确的做法:
a) 确保您的手机已通过 USB 数据线连接到 Mac
b) 在 Xcode 中,转到 Product -> Build for -> Running
c) 等待它构建(这不会运行应用程序,所以请耐心等待)
d) 像往常一样运行应用程序
我想就是这样!然后你就可以断开手机了。至少它对我有用;希望它也能帮助你。
UPD:仍然不起作用!
今天晚些时候,我再次尝试启动我的应用程序,发现我的建议碰巧没用 - 奇怪的是,这一次并没有解决这个问题......但不用担心 - 我不知何故让它再次工作!
我所做的是转到我的 AppDelegate.m 并更改 jsCodeLocation 行看起来就像我使用较低版本的 React Native 时的样子:
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
所以它现在可以工作......希望这会有所帮助:)
UPD 2:当您决定在模拟器上运行代码时,不要忘记将代码改回来!
jsCodeLocation = [[RCTBundleURLProvider sharedSettings]
jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
【讨论】: