ios - Expo iOS 构建在启动画面上崩溃

标签 ios react-native expo

我使用 Expo 和 React Native 开发了一个应用程序。该应用程序在使用 Expo Go 应用程序开发期间运行良好,我在 Android 和 iOS 中进行了测试。

然后我使用 expo build 构建了每个应用程序。生产 Android 应用程序运行良好,但 iOS 应用程序在启动画面出现后的几秒钟内崩溃,无论是在真实设备上还是在我运行模拟器构建时。我将 iOS 应用程序构建为存档,目前正在试飞中。我能够在没有崩溃的情况下将以前的版本部署到应用商店。

我下载了崩溃日志,最后的异常引用是:

UIKitCore: -[UIApplication _checkBackgroundRefreshAPIAdoption]

我在任何地方都找不到对 checkBackgroundRefreshAPIAdoption 的引用。我所做的最后一个重大更改是添加 MapView 功能,但我也尝试删除对 MapView 的所有引用并重新构建,但仍然遇到同样的问题。

编辑:忘了添加,我确实按照此处找到的部署独立 iOS 应用程序的说明进行操作 https://docs.expo.dev/versions/latest/sdk/map-view/

有人知道问题出在哪里吗?

最佳答案

我最终自己解决了这个问题。它与我认为的 map api 无关。

它实际上是通知的一部分。当我向应用程序添加通知时,我将 UIBackgroundModes 属性添加到我的 app.json 文件中 ios 下的 infoPlist 对象。我已将其作为字符串放入,但此属性需要是一个字符串数组。

这是我之前的: “infoPlist”:{“UIBackgroundModes”:“远程通知”}

这就是我将其更改为: "infoPlist": {"UIBackgroundModes": ["remote-notification"]}

应用程序现在可以正常加载。

这是 app.json 文件的完整相关部分:

{"expo": { "ios": { "infoPlist": { "UIBackgroundModes": ["remote-notification"] } } } }

关于ios - Expo iOS 构建在启动画面上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68958626/

相关文章:

react-native - 如何从弹出的 Expo 项目中删除 "android.hardware.location"权限请求?

javascript - 如何使用一个默认条件对 3 个条件执行三元语句

reactjs - 在功能组件中重新渲染平面列表

android - 无法从 Windows 上的 Assets index.android.bundle 加载脚本

javascript - 日志记录对 native 事件使用react,console.log 未触发并最终使应用程序崩溃

react-native - react native : Android TextInput autoCorrect={false} does not disable suggestions

ios - 如何使用 Xamarin 在 iOS 的 NavigationController 中更改 1 个字符的标题文本颜色

iphone - 旋转 UIAlertView

ios - UICollectionViewCell 外的按钮

ios - 自定义 uitabbarcontroller 外观