我试图在我们的设备上以调试模式运行我的原生android应用程序,而无需在开发箱上运行开发服务器。我在两个平台上使用调试变体/方案来促进我们的应用程序的“分期”版本,因为我已经读过,反应原生并不是超级友好的,而是与发布和调试以外的构建模式非常友好。React Native Android - 如何仅在设备上以调试模式运行?
在iOS端,我能够修改AppDelegate.m,如下所示...基本上,如果它是一个调试版本,并且它是由buddybuild构建的,请不要为js包寻找开发机器,看设备:
#ifdef DEBUG
NSDictionary *infoPlistDict = [[NSBundle mainBundle] infoDictionary];
if (infoPlistDict[@"BUDDYBUILD_BUILD_ID"]) {
// deployed via buddybuild, don't use localhost
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
} else {
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
}
#else
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
...我正在寻找一种方法来做到这一点在Android上。我有我需要的buddybuild位代码,所以不用担心,我只想知道如何以编程方式更改Android上js包的位置,就像我在AppDelegate.m中为iOS所做的那样。现在,与android上js bundle位置相关的所有代码似乎都在react-native包中,我宁愿不要破解它以使其工作。
如果我可以提供更多信息,请让我知道。
,我认为你应该说明你如何实际构建调试版本'反应原生运行Android的完成这个答案'不会工作。你需要做'cd android && ./gradlew assembleDebug' – ssomnoremac
@ssomnoremac'react-native run-android' should work。它默认构建调试版本。如果你想构建一个不同的变体(例如release),那么你使用'react-native run-android --variant = release' – Tspoon
我做了你所说的并且它没有绑定in后运行了'run-android';然而,在运行'assembleDebug'或'varient = debug'之后,它开始被捆绑在vanilla'run-android'中。仍然认为你应该提及。 – ssomnoremac