我把所有的静态图片都放在项目根目录下一个名为"images"的文件夹中,但是,在我运行下面的命令捆绑我的应用程序后,应用程序可以工作,但没有显示图片。
我用来捆绑的命令:
./react-native bundle --minify --entry-file index.ios.js --platform ios --dev false --bundle-output main.jsbundle --assets-dest ./assets
注意,assets文件夹已创建,其中包含所有图像的my images文件夹。
你能帮忙吗?
8条答案
按热度按时间rm5edbpk1#
请先检查XCode控制台日志。您会发现应用无法找到路径“{project name}.app/assets/resources/..”中的特定图像资产。
因此,您需要将图像放在这些固定路径上,这与iOS原生应用程序不同。让我们将“assets”文件夹添加到您的“Copy Bundle Resources”中。
**步骤1:**选择XCode项目-〉构建阶段-〉复制捆绑包资源
步骤2
步骤3
步骤4
gzjq41n42#
资源目标和主.jsbundle必须位于同一文件夹中。请尝试:
无论如何,捆绑程序都会在其中创建一个assets文件夹。
更新,包括以下讨论中的信息:
在react-native-xcode.shXCode构建步骤中执行的www.example.com脚本将bundler创建的main.jsbundle和assets文件夹复制到应用程序包中。如果要手动部署包,则需要确保最简单的方法是将main.jsbundle直接包含到项目中,并创建一个指向assets文件夹的文件夹链接。验证这两个文件是否都显示在“构建阶段“-〉”复制捆绑资源“。
ds97pgxw3#
对于react-native的较新版本,请使用以下命令:
您将看到
asset
文件夹和ios
文件夹中的main.jsbundle
文件。然后转到Xcode
-〉build phases
-〉copy bundle resources
,然后添加asset
文件夹和main.jsbundle
文件。不要忘记单击Copy if needed
oxf4rvwz4#
即使您正在使用
newer Xcode versions
(即12.x
或更高版本),也不会加载本地资源。对此有两种解决方案:1.升级React Native版本
1.或转到以下文件:
将下面的else块添加到if块中,如下所示
如果是较旧的xcode,则需要在
Xcode -> build phases -> copy bundle resources
下添加assets
和main.jsbundle
或
使用库
react-native-image-fix
Here's the link尝试以下命令:9o685dep5#
ios
目录中创建Assets
文件夹。Create groups
选项。Assets
文件夹不会像在其他解决方案中那样显示在Copy Bundle Resources
中。它将显示在
Project Navigator
中。它看起来与AWS
文件夹不同,因为AWS
添加为Create folder references
react-native
版本> 0.63
。一米一米一。
解决方案(https://stackoverflow.com/a/53513935/1206052)我不想使用任何命令/脚本来强制它,因为捆绑是现成的。
解决方案(https://stackoverflow.com/a/49457267/1206052)此解决方案对我不起作用。
qncylg1j6#
对我来说,解决方案是运行以下命令来构建资产:
xeufq47z7#
以上所有问题都奏效了。
但要注意,在我的情况下,我不得不这样做的顺序:
1.先删除旧的资产文件夹(在
ios/assets
中)1.将此添加到我的
package.json
中的scripts
属性下(这样我就可以稍后运行它,或者为其他开发人员运行)1.转到我的Xcode(我在v14.0.1上),到“构建阶段”选项卡,并添加我以前创建的“资产”文件夹。
1.在模拟器中删除我的应用程序
1.全新版本iOS(产品〉全新版本)
1.在我的项目的根目录下运行
npm run build:ios
monwx1rj8#
我将xcode版本从
9.3
更改为9.2
时修复了该问题