如何将旧的基于Cordova的应用程序生成的KeyStore和Keychain键值对迁移到新的基于React Native的应用程序?

问题描述 投票:0回答:1

场景非常简单:有一个使用Cordova编写的旧应用程序,必须使用React Native从头编写的新应用程序进行更新。

我不是使用Cordova编写的应用程序的开发者和维护者,但我可以动手使用它的源代码。我必须重写该应用程序并进行“无提示”更新,即新应用程序不得“重置”存储在KeyStore(Android)和Keychain(iOS)上的数据,并且它必须重新使用这些数据。

[当我在测试设备上“更新”应用程序时,我尝试使用以下方法访问由旧应用程序生成的数据:

并尝试获取数据,但没有成功。问题在iOS和Android上都是相同的。

目前在iOS上,我使用Xcode来构建这两个应用程序。首先,我构建旧版本的应用程序,生成数据并将其存储在钥匙串上。然后,我构建了新的App版本,以取代前一个版本。我已经确保在Xcode上,两个版本的Bundle IdentifierSigning Certificate是相同的。但是从新版本的应用程序中,我仍然无法访问钥匙串。要进行测试,请执行以下操作:我降级应用再次构建了旧版本,因此旧应用替换了新版本,在这种情况下,我可以从旧应用中访问钥匙串数据。

我怀疑,即使Bundle Identifier,两个应用程序也在使用两个不同的钥匙串zones。因此,为了能够从新应用访问旧应用存储的数据,我必须做什么?

我的想法是,用户不应受到应用程序更新的影响,因此旧应用程序的钥匙串(和密钥库)必须由新应用程序重复使用。

注意:我看到在旧版App上,用于在Keychain / KeyStore中存储数据的函数是:

var ss = new cordova.plugins.SecureStorage(callback)

注意:我已经读过this from Apple Developer website,但我想可能不是我的情况,因为我不能在旧版App上设置钥匙串共享,因为我们不允许发布Cordova-base的更新应用程式但是,但是,我们尝试内部使用共享访问没有成功。

react-native cordova migration keystore keychain
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.