Есть ли способ перехватить загрузку пакета react-native?

#react-native #react-native-android #react-native-ios

#react-native #react-native-ios

Вопрос:

В настоящее время я пытаюсь создать новое приложение, основанное на react, и мне нужно, чтобы пакет react-native был зашифрован при его отправке на устройство и пока он работает на нем. Затем мне нужно иметь возможность расшифровать его до того, как он будет загружен машинным кодом, иначе это будет тарабарщина.

Есть ли какой-нибудь способ перехватить загрузку пакета, чтобы я мог этого добиться? Я поискал в Google и провел исследование, и, похоже, на самом деле ответов на этот вопрос не так много. В идеале мне понадобились бы способы как для Android, так и для iOS (я предполагаю, что это должно быть решение с собственным кодом), но если для одного найден способ, я бы предположил, что те же принципы могут быть применены для другого.

Некоторые подробности, если это может быть полезно: в настоящее время используется 0.63.2 react-native (не expo). Приветствуются собственные и даже основанные на jni решения — я бы предпочел иметь решение, чем ничего.

Ответ №1:

Это возможно, например, 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 в пакете есть некоторая путаница, и этого уже достаточно.