React-native 在 64 位设备上 - 调试工作正常但不是发布。 32位设备完全没有问题

React-native on 64-bit devices - debug works fine but not release. No problem with 32-bit devices at all

我用谷歌搜索了很多,但 none 的发现与我的情况相同:

  1. 只有 64 位 Android 设备受影响(试过几个 - 都一样)
  2. 在通过 USB 连接的相同设备上调试构建没有问题
  3. 发布签名构建在每个 64 位设备上挂起(尝试了两个 64/32 版本)
  4. 32 位和通用签名版本在 32 位设备上非常有效

同一个代码在调试和发布时怎么可能不同,为什么?使用了不同的 JS 核心?

[更新] catlog 显示 pouchdb 复制问题:

{ [Error]
10-19 08:55:39.157 22836 22855 I ReactNativeJS:   line: 132,
10-19 08:55:39.157 22836 22855 I ReactNativeJS:   column: 7285,
10-19 08:55:39.157 22836 22855 I ReactNativeJS:   sourceURL: 'index.android.bundle',
10-19 08:55:39.157 22836 22855 I ReactNativeJS:   result: 
10-19 08:55:39.157 22836 22855 I ReactNativeJS:    { ok: false,
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      start_time: '2019-10-19T05:55:38.997Z',
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      docs_read: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      docs_written: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      doc_write_failures: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      errors: [],
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      status: 'aborting',
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      end_time: '2019-10-19T05:55:39.155Z',
10-19 08:55:39.157 22836 22855 I ReactNativeJS:      last_seq: 0 } }

在同一台设备上进行调试时效果很好。 怎么样?

可以附上 logcat 的日志吗?这将为正在发生的事情提供线索。

在您的设备上安装发布版本。

adb logcat -c // Clear all previous logs
adb logcat > log.txt // Dump logs to a separate file 

获得日志后,请查看您的包裹是否有任何异常。如果是这样,请在这里分享它,我们可以看看出了什么问题。没有日志,很难推测。

原因是在调试构建中默认允许非 https 请求,在生产中你必须指定异常否则代码会静静地死掉,非常不清楚Android 方法。在 iOS 顺便说一句,也有类似的问题。所以与 Couch/Pouch 数据库无关,只是 OS 特定的网络混乱