React-Native离线捆绑包-未显示映像

3zwjbxry  于 2022-11-17  发布在  React
关注(0)|答案(5)|浏览(178)

我有一个React-Native应用程序,我正尝试以发布模式部署到我的手机。我可以将该应用程序捆绑到手机。数据库、视频和音频资源都在其中,但UI中没有显示图像。
我已执行以下操作来“捆绑”我的应用程序:
1.在终端的项目文件夹中运行react-native bundle --platfrom ios --dev false --entry-file index.ios.js --bundle-output main.jsbundle
1.将对main.jsbundle文件的引用拖到myapp文件夹下的XCode中
1.在XCode中,打开AppDelegate.m并取消注解jsCodeLocation = [[NSBundle mainBundle]…
1.打开Product > Scheme > Edit Scheme,然后将Build Configuration更改为Release
1.选择项目导航器下的myapp,然后:在TARGETS: myappTestsBuild PhasesLink Binary With Libraries下按+选择WorkspacelibReact.aAdd
当我尝试在XCode中使用myapp > targets > myapp > Bundle React Native code and images中的../node_modules/react-native/packager/react-native-xcode.sh设置进行编译时,error code 1失败。
我已经看到了负载的职位上,我已经尝试:

  • 检查Run script only when installing-然后安装应用程序,但没有映像
  • source ~/.bash_profile添加到react-native-xcode.sh-应用程序构建失败

任何帮助将不胜感激!

jk9hmnmh

jk9hmnmh1#

当您生成bundle时,也要输入--assets-dest ./
react-native bundle --platform ios --assets-dest ./ --dev false --entry-file index.ios.js --bundle-output iOS/main.jsbundle
它将生成main.jsbundle和Assets文件夹。转到您的Xcode,右键单击“将文件添加到项目”,然后将main.jsbundle文件添加到项目。还可以拖放Assets文件夹并选择“通过引用创建”(注意:不要选择“创建组”)。
我使用的是react 0.33,main.jsbundle使用的是assets(small a)文件夹,但生成的是Assets(Caps A)。我只是将生成的文件夹从Assets更改为assets,并将其导入xcode,它就开始工作了

3htmauhk

3htmauhk2#

是图像在xcode或在文件系统?,我没有看到一个--assets-dest在你的捆绑包参数

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

还可以像bundle一样将assets文件夹添加到xcode中。
请注意,只有在正确需要图像资产时才复制它们,请参阅documentation

cwtwac6a

cwtwac6a3#

对于IOS 14:转到以下目录:node_modules/react-native/Libraries/Image并打开RCTUIImageViewAnimated.m,然后将else条件添加到此部件:

if (_currentFrame) {
layer.contentsScale = self.animatedImageScale;
layer.contents = (__bridge id)_currentFrame.CGImage;
} else {
[super displayLayer:layer];
}
3ks5zfa0

3ks5zfa04#

在react原生项目根目录中运行以下命令:
react-native bundle --entry-file='./index.js' --bundle-output='./main.jsbundle' --dev=false --platform='ios' --assets-dest='./ios'
并在XCode中添加项目中文件夹的引用。

x7yiwoj4

x7yiwoj45#

我在BuildPhases〉CopyBundleResources中将assets文件夹作为一个整体添加,并运行这个命令;
npxReact原生捆绑包--平台ios --资产目标/ --dev false --入口文件index.js --捆绑包输出ios/main.jsbundle
希望这能帮助到一些人。

相关问题