我試圖在我們的設備上以調試模式運行我的原生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