gpt4 book ai didi

ios - "No bundle url present"react-native iOS Release模式错误

转载 作者:可可西里 更新时间:2023-11-01 06:19:28 29 4
gpt4 key购买 nike

我有一个原生 iOS 应用程序,我们正在使用 react-native 来嵌入 Facebook 风格的社交提要。要在 Debug模式下运行,我使用打包服务器和以下代码:

NSURL *jsCodeLocation = [NSURL URLWithString:@"http://X.X.X.X:8081/index.ios.bundle?platform=ios"];

bridgeReactView = [[RCTBridge alloc] initWithBundleURL: jsCodeLocation
moduleProvider: nil
launchOptions:nil];

rootReactView = [[RCTRootView alloc] initWithBridge:bridgeReactView
moduleName:@"SocialFeed"
initialProperties:@{}];

其中 X.X.X.X 是我的本地 IP 地址。这工作正常,但我无法将 react 代码捆绑到发布版本中。从官方文档和其他 Stack Overflow 帖子中我收集到,最初需要手动将代码与类似的东西捆绑在一起

react-native bundle --entry-file="index.ios.js" --bundle-output="./ios/MyApp/main.jsbundle' --dev=false --platform='ios' --assets-dest="./ios"

并将上面的 jsCodeLocation 定义更改为

*jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

显然,在较新版本的 react-native 中,如果您选择发布构建配置,xCode 会自动为您打包代码,在这种情况下,您必须将上述内容更改为

NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

这两种方法都不适合我们——在这两种情况下,jsCodeLocation 都设置为 nil,并且我收到“没有捆绑 URL 存在”错误:

2017-05-08 15:06:56.738 [fatal][tid:main] No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.

顺便说一句,我尝试在我的 Info.plist 文件中设置以下值:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
</key>

最佳答案

您应该执行以下操作:

  1. 运行以下命令:react-native bundle --dev false --platform ios --entry-file index.ios.js --bundle-output ios/main.jsbundle --assets-dest ./ios
  2. 通过将 main.jsbundle 和 assets 目录拖到您的项目中,将它们添加到 xcode。

注意:您只需在第一次运行第 2 步。

关于ios - "No bundle url present"react-native iOS Release模式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43854369/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com