【问题标题】:Expo iOS build crashing on splash screenExpo iOS 构建在初始屏幕上崩溃
【发布时间】:2021-10-27 16:50:00
【问题描述】:

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

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

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

UIKitCore: -[UIApplication _checkBackgroundRefreshAPIAdoption]

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

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

有谁知道问题出在哪里?

【问题讨论】:

    标签: ios react-native expo


    【解决方案1】:

    我最终自己解决了这个问题。正如我所想,它与地图 API 无关。

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

    这是我之前的: "infoPlist": {"UIBackgroundModes": "remote-notification"}

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

    应用现在可以正常加载了。

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

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

    【讨论】:

    • 能否分享一下tour app.json文件
    • 添加到我的回答中
    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2020-06-10
    • 1970-01-01
    相关资源
    最近更新 更多