소스 검색

Merge branch 'issue_53' into 0.7.0

Ben Hsieh 8 년 전
부모
커밋
18dd768d12
1개의 변경된 파일25개의 추가작업 그리고 0개의 파일을 삭제
  1. 25
    0
      src/scripts/prelink.js

+ 25
- 0
src/scripts/prelink.js 파일 보기

@@ -9,6 +9,31 @@ if (!hasNecessaryFile) {
9 9
   throw 'RNFetchBlob could not found link Android automatically, some files could not be found.'
10 10
 }
11 11
 
12
+var package = JSON.parse(fs.readFileSync(PACKAGE_JSON));
13
+var APP_NAME = package.name;
14
+var APPLICATION_MAIN = process.cwd() + '/android/app/src/main/java/com/' + APP_NAME.toLocaleLowerCase() + '/MainApplication.java';
15
+
16
+if(!fs.existsSync(APPLICATION_MAIN)) {
17
+  throw 'RNFetchBlob could not found link Android automatically, MainApplication.java not found in path : ' + APPLICATION_MAIN
18
+}
19
+
20
+var VERSION = checkVersion();
21
+console.log('RNFetchBlob detected app version .. ' + VERSION);
22
+
23
+if(VERSION >= 0.29) {
24
+  console.log('RNFetchBlob patching MainApplication.java .. ');
25
+  var main = fs.readFileSync(APPLICATION_MAIN);
26
+  if(String(main).match('new RNFetchBlobPackage()') !== null) {
27
+    console.log('skipped');
28
+    return
29
+  }
30
+  main = String(main).replace('new MainReactPackage()', 'new RNFetchBlobPackage(),\n           new MainReactPackage()');
31
+  main = String(main).replace('import com.facebook.react.ReactApplication;', 'import com.facebook.react.ReactApplication;\nimport com.RNFetchBlob.RNFetchBlobPackage;')
32
+  fs.writeFileSync(APPLICATION_MAIN, main);
33
+  console.log('RNFetchBlob patching MainApplication.java .. ok')
34
+
35
+}
36
+
12 37
 // set file access permission for Android < 6.0
13 38
 fs.readFile(MANIFEST_PATH, function(err, data) {
14 39