弹出应用程序后,仅在iOS版本构建中缺少资产



我从expo 38弹出了我的应用程序,从那以后,当我在iOS上以发布模式运行应用程序时,我的静态/本地图像不会显示,但没有报告错误。无论是发布模式还是调试模式,它都能在Android上完美运行。我使用的是png扩展的图像,所有图像都是本地添加到我的项目路径上的,比如(assets/images(。我试图从我的Xcode11.7创建一个IPA文件,然后我在我的真实设备上安装了IPA。在我的应用程序中,在真实设备上运行应用程序时不显示本地图像。如何解决这个问题?请帮我

我像下面的代码一样解决了这个问题

弹出时,expo应该生成一个metro.config.js文件,看起来像

module.exports = {
transformer: {
assetPlugins: ['expo-asset/tools/hashAssetFiles']
}
};

我也被这个问题困扰了很长一段时间。我不确定你的情况是否如此(很酷的单词组合:D(,但我会告诉你我是如何解决的:这可能是由expo更新引起的,每次部署新的构建时,您都必须运行expo publish(在app.config.js文件中使用正确的buildNumber(,因此最新的javascript捆绑包将在构建开始时提供给您的构建。要获取更新的javascript捆绑包,您必须在应用程序启动阶段添加这样的内容:

import * as Updates from "expo-updates";
const fetchUpdates = async () => {
try {
const update = await Updates.checkForUpdateAsync();
if (update.isAvailable) {
await Updates.fetchUpdateAsync()
// NOTIFY USER HERE
Updates.reloadAsync()
}
} catch (e) {
// HANDLE ERROR HERE
}}

并在应用程序加载资源的地方调用await fetchUpdates();(如果你做一些预加载,比如缓存字体等(。如果您使用expo splashscreen,您也可以使用await SplashScreen.preventAutoHideAsync();,然后调用await fetchUpdates();SplashScreen.hideAsync();。在这里,我会留下一些有用的链接,也可以帮助:

  1. https://github.com/expo/expo/issues/9386
  2. https://docs.expo.io/versions/latest/sdk/updates/
  3. https://docs.expo.io/versions/latest/sdk/splash-screen/

希望这有帮助;(

首先,请检查imageName的字符串(正确吗?(请使用SwiftGen以避免在使用字符串时出现拼写错误的风险。SwiftGen

相关内容

  • 没有找到相关文章

最新更新