部署后,反应原生iOS应用程序不显示静态资产(图像)

问题描述:

我的所有静态图像都放在我的项目根目录下名为“images”的文件夹中。但是,在我运行以下命令捆绑我的应用程序后,该应用程序可以正常工作,但没有显示图像。部署后,反应原生iOS应用程序不显示静态资产(图像)

我使用捆绑的命令:

./react-native bundle --minify --entry-file index.ios.js --platform ios --dev false --bundle-output main.jsbundle --assets-dest ./assets 

注意,资产文件夹中创建,它有我的图片与确定的所有图像文件夹中。

你能帮忙吗?

+0

请给我更多的细节。模拟器还是设备?如果设备,你是如何部署它的?你可以发表一个你的图像用法的代码示例。 –

+0

它发生在设备和模拟器上。 – meteorite

+0

我做了什么来部署它:1)编辑模式以设置“发布”模式。 2)将包位置改为使用本地主包(main.jsbundle)3)执行上面的命令捆绑应用程序。 4)选择我的设备并运行它。 – meteorite

资产目的地和mainbundle.js必须位于同一个文件夹中。尝试:

./react-native bundle --minify --entry-file index.ios.js --platform ios --dev false --bundle-output ./release/main.jsbundle --assets-dest ./release 

捆绑器将在那里创建一个资产文件夹。

UPDATE包括从下面的讨论信息:

的react-native-xcode.sh脚本是在XCode中生成步骤复制main.jsbundle执行和文件夹中创建的资产被捆绑进应用程序包。如果您想手动部署软件包,则需要确保复制这些文件。最简单的方法是将main.jsbundle直接包含到项目中,并创建一个到assets文件夹的文件夹链接。确认两者都显示在“Build Phases” - >“Copy Bundle Resources”中。

+0

在这种情况下应该是什么jsCodeLocation路径?当前值是:jsCodeLocation = [[NSBundle mainBundle] URLForResource:@“main”withExtension:@“jsbundle”]; – meteorite

+0

问,因为试了一下,但没有工作。 – meteorite

+0

可能jsCodeLocation = [[NSBundle mainBundle] URLForResource:@“release/main”withExtension:@“jsbundle”];您也可以尝试执行--bundle-output ./main.jsbundle --assets-dest。重点是,那require()搜索资产相对于当前的main.jsbundl –