我目前正在尝试组装一个新的react-native应用程序,并且需要将react-native捆绑包推送到设备上并在设备上存在时对其进行加密。然后,我需要能够解密它,然后再由本机代码加载它,否则将变得毫无用处。
是否有某种方法可以拦截捆绑软件的加载,以便我可以实现此目标?我已经四处搜寻,并且已经进行了研究,但实际上答案似乎并不多。理想情况下,我将需要同时适用于Android和iOS的方法(我假设这将是一种本机代码解决方案),但是如果找到一种方法,那么我想可以将相同的原理应用于另一种方法。 / p>
一些细节可能有用:当前使用{-{1}} of react-native(non-expo)。欢迎使用基于本机甚至基于jni的解决方案-我宁愿有一个解决方案,而不是没有。
答案 0 :(得分:0)
有可能像codepush(https://github.com/microsoft/react-native-code-push)一样通过下载捆绑软件并在应用启动之前对其进行“安装”来加载捆绑软件。
您可以控制文件ios/MyApp/AppDelegate.m
和android/app/src/main/java/com/MyApp/MainApplication.java
中的捆绑包加载,以覆盖某些方法。
但是无论如何,即使您对捆绑包进行加密,即使解密密钥位于js捆绑包之外的前端应用程序中,它也始终具有解密的方式。也许需要一些时间,但是有可能。
那么,这种加密非常必要吗?也许使用新的Hermes Js https://github.com/facebook/hermes时,捆绑包中存在一些混淆,已经足够了。