react-native-ota-hot-update 1.1.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +20 -8
  3. package/android/build.gradle +32 -4
  4. package/android/generated/java/com/otahotupdate/NativeOtaHotUpdateSpec.java +54 -0
  5. package/android/generated/jni/CMakeLists.txt +36 -0
  6. package/android/generated/jni/RNOtaHotUpdateSpec-generated.cpp +56 -0
  7. package/android/generated/jni/RNOtaHotUpdateSpec.h +31 -0
  8. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/ComponentDescriptors.cpp +22 -0
  9. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/ComponentDescriptors.h +24 -0
  10. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/EventEmitters.cpp +16 -0
  11. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/EventEmitters.h +17 -0
  12. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/Props.cpp +19 -0
  13. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/Props.h +18 -0
  14. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI-generated.cpp +56 -0
  15. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/RNOtaHotUpdateSpecJSI.h +103 -0
  16. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/ShadowNodes.cpp +17 -0
  17. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/ShadowNodes.h +23 -0
  18. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/States.cpp +16 -0
  19. package/android/generated/jni/react/renderer/components/RNOtaHotUpdateSpec/States.h +19 -0
  20. package/android/gradle.properties +5 -5
  21. package/android/src/main/AndroidManifest.xml +1 -1
  22. package/android/src/main/java/com/otahotupdate/OtaHotUpdate.kt +57 -0
  23. package/android/src/main/java/com/otahotupdate/OtaHotUpdateModule.kt +142 -0
  24. package/android/src/newarch/OtaHotUpdateSpec.kt +7 -0
  25. package/android/src/oldarch/OtaHotUpdateSpec.kt +15 -0
  26. package/ios/OtaHotUpdate.h +13 -0
  27. package/ios/{RNhotupdate.m → OtaHotUpdate.mm} +50 -33
  28. package/ios/generated/RNOtaHotUpdateSpec/ComponentDescriptors.cpp +22 -0
  29. package/ios/generated/RNOtaHotUpdateSpec/ComponentDescriptors.h +24 -0
  30. package/ios/generated/RNOtaHotUpdateSpec/EventEmitters.cpp +16 -0
  31. package/ios/generated/RNOtaHotUpdateSpec/EventEmitters.h +17 -0
  32. package/ios/generated/RNOtaHotUpdateSpec/Props.cpp +19 -0
  33. package/ios/generated/RNOtaHotUpdateSpec/Props.h +18 -0
  34. package/ios/generated/RNOtaHotUpdateSpec/RCTComponentViewHelpers.h +18 -0
  35. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec-generated.mm +67 -0
  36. package/ios/generated/RNOtaHotUpdateSpec/RNOtaHotUpdateSpec.h +72 -0
  37. package/ios/generated/RNOtaHotUpdateSpec/ShadowNodes.cpp +17 -0
  38. package/ios/generated/RNOtaHotUpdateSpec/ShadowNodes.h +23 -0
  39. package/ios/generated/RNOtaHotUpdateSpec/States.cpp +16 -0
  40. package/ios/generated/RNOtaHotUpdateSpec/States.h +19 -0
  41. package/ios/generated/RNOtaHotUpdateSpecJSI-generated.cpp +56 -0
  42. package/ios/generated/RNOtaHotUpdateSpecJSI.h +103 -0
  43. package/lib/commonjs/NativeOtaHotUpdate.js +9 -0
  44. package/lib/commonjs/NativeOtaHotUpdate.js.map +1 -0
  45. package/lib/commonjs/download.d.js +2 -0
  46. package/lib/commonjs/download.d.js.map +1 -0
  47. package/lib/commonjs/index.js +113 -0
  48. package/lib/commonjs/index.js.map +1 -0
  49. package/lib/module/NativeOtaHotUpdate.js +5 -0
  50. package/lib/module/NativeOtaHotUpdate.js.map +1 -0
  51. package/lib/module/download.d.js +2 -0
  52. package/lib/module/download.d.js.map +1 -0
  53. package/lib/module/index.js +109 -0
  54. package/lib/module/index.js.map +1 -0
  55. package/lib/typescript/commonjs/package.json +1 -0
  56. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts +11 -0
  57. package/lib/typescript/commonjs/src/NativeOtaHotUpdate.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/src/index.d.ts +25 -0
  59. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  60. package/lib/typescript/module/package.json +1 -0
  61. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts +11 -0
  62. package/lib/typescript/module/src/NativeOtaHotUpdate.d.ts.map +1 -0
  63. package/lib/typescript/module/src/index.d.ts +25 -0
  64. package/lib/typescript/module/src/index.d.ts.map +1 -0
  65. package/package.json +184 -12
  66. package/{rn-hotupdate.podspec → react-native-ota-hot-update.podspec} +6 -3
  67. package/react-native.config.js +10 -6
  68. package/src/NativeOtaHotUpdate.ts +12 -0
  69. package/src/download.d.ts +759 -689
  70. package/src/index.tsx +67 -39
  71. package/android/src/main/java/com/rnhotupdate/HotUpdateModule.java +0 -161
  72. package/android/src/main/java/com/rnhotupdate/OtaHotUpdate.java +0 -45
  73. package/ios/RNhotupdate.h +0 -12
  74. package/ios/RNhotupdate.xcodeproj/project.pbxproj +0 -281
  75. package/ios/RNhotupdate.xcworkspace/contents.xcworkspacedata +0 -7
  76. /package/android/src/main/java/com/{rnhotupdate → otahotupdate}/SharedPrefs.kt +0 -0
package/src/index.tsx CHANGED
@@ -1,52 +1,66 @@
1
1
  import { NativeModules, Platform } from 'react-native';
2
- import {DownloadManager} from './download';
2
+ import type { DownloadManager } from './download';
3
+
3
4
  const LINKING_ERROR =
4
- 'The package \'rn-hotupdate\' doesn\'t seem to be linked. Make sure: \n\n' +
5
- Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
6
- '- You rebuilt the app after installing the package\n' +
7
- '- You are not using Expo Go\n';
5
+ `The package 'react-native-ota-hot-update' doesn't seem to be linked. Make sure: \n\n` +
6
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
7
+ '- You rebuilt the app after installing the package\n' +
8
+ '- You are not using Expo Go\n';
9
+
10
+ // @ts-expect-error
11
+ const isTurboModuleEnabled = global.__turboModuleProxy != null;
8
12
 
9
13
  export interface UpdateOption {
10
- headers?: object
11
- progress?(received: string, total: string): void
12
- updateSuccess?(): void
13
- updateFail?(message?: string): void
14
- restartAfterInstall?: boolean
15
- extensionBundle?: string,
14
+ headers?: object;
15
+ progress?(received: string, total: string): void;
16
+ updateSuccess?(): void;
17
+ updateFail?(message?: string): void;
18
+ restartAfterInstall?: boolean;
19
+ extensionBundle?: string;
16
20
  }
17
- const RNhotupdate = NativeModules.RNhotupdate
18
- ? NativeModules.RNhotupdate
19
- : new Proxy(
20
- {},
21
- {
22
- get() {
23
- throw new Error(LINKING_ERROR);
24
- },
25
- }
21
+ const OtaHotUpdateModule = isTurboModuleEnabled
22
+ ? require('./NativeOtaHotUpdate').default
23
+ : NativeModules.OtaHotUpdate;
24
+
25
+ const RNhotupdate = OtaHotUpdateModule
26
+ ? OtaHotUpdateModule
27
+ : new Proxy(
28
+ {},
29
+ {
30
+ get() {
31
+ throw new Error(LINKING_ERROR);
32
+ },
33
+ }
26
34
  );
27
- const downloadBundleFile = async (downloadManager: DownloadManager, uri: string, headers?: object, callback?: (received: string, total: string) => void) => {
35
+
36
+ const downloadBundleFile = async (
37
+ downloadManager: DownloadManager,
38
+ uri: string,
39
+ headers?: object,
40
+ callback?: (received: string, total: string) => void
41
+ ) => {
28
42
  const res = await downloadManager
29
- .config({
30
- fileCache: Platform.OS === 'android',
31
- })
32
- .fetch('GET', uri, {
33
- ...headers,
34
- })
35
- .progress((received, total) => {
36
- if (callback) {
37
- callback(received, total)
38
- }
39
- });
43
+ .config({
44
+ fileCache: Platform.OS === 'android',
45
+ })
46
+ .fetch('GET', uri, {
47
+ ...headers,
48
+ })
49
+ .progress((received, total) => {
50
+ if (callback) {
51
+ callback(received, total);
52
+ }
53
+ });
40
54
  return res.path();
41
55
  };
42
56
  function setupBundlePath(path: string, extension?: string): Promise<boolean> {
43
57
  return RNhotupdate.setupBundlePath(path, extension);
44
58
  }
45
59
  function deleteBundlePath(): Promise<boolean> {
46
- return RNhotupdate.deleteBundle();
60
+ return RNhotupdate.deleteBundle(1);
47
61
  }
48
62
  function getCurrentVersion(): Promise<string> {
49
- return RNhotupdate.getCurrentVersion();
63
+ return RNhotupdate.getCurrentVersion(0);
50
64
  }
51
65
  async function getVersionAsNumber() {
52
66
  const rawVersion = await getCurrentVersion();
@@ -59,7 +73,7 @@ async function resetApp() {
59
73
  RNhotupdate.restart();
60
74
  }
61
75
  function removeBundle(restartAfterRemoved?: boolean) {
62
- deleteBundlePath().then(data => {
76
+ deleteBundlePath().then((data) => {
63
77
  if (data && restartAfterRemoved) {
64
78
  setTimeout(() => {
65
79
  resetApp();
@@ -74,7 +88,12 @@ const installFail = (option?: UpdateOption, e?: any) => {
74
88
  option?.updateFail?.(JSON.stringify(e));
75
89
  console.error('Download bundle fail', JSON.stringify(e));
76
90
  };
77
- async function downloadBundleUri(downloadManager: DownloadManager, uri: string, version: number, option?: UpdateOption) {
91
+ async function downloadBundleUri(
92
+ downloadManager: DownloadManager,
93
+ uri: string,
94
+ version: number,
95
+ option?: UpdateOption
96
+ ) {
78
97
  if (!uri) {
79
98
  installFail(option, 'Please give a valid URL!');
80
99
  return;
@@ -85,13 +104,22 @@ async function downloadBundleUri(downloadManager: DownloadManager, uri: string,
85
104
  }
86
105
  const currentVersion = await getVersionAsNumber();
87
106
  if (version <= currentVersion) {
88
- installFail(option, 'Please give a bigger version than the current version, the current version now has setted by: ' + currentVersion);
107
+ installFail(
108
+ option,
109
+ 'Please give a bigger version than the current version, the current version now has setted by: ' +
110
+ currentVersion
111
+ );
89
112
  return;
90
113
  }
91
114
  try {
92
- const path = await downloadBundleFile(downloadManager, uri, option?.headers, option?.progress);
115
+ const path = await downloadBundleFile(
116
+ downloadManager,
117
+ uri,
118
+ option?.headers,
119
+ option?.progress
120
+ );
93
121
  if (path) {
94
- setupBundlePath(path, option?.extensionBundle).then(success => {
122
+ setupBundlePath(path, option?.extensionBundle).then((success) => {
95
123
  if (success) {
96
124
  setCurrentVersion(version);
97
125
  option?.updateSuccess?.();
@@ -1,161 +0,0 @@
1
- package com.rnhotupdate;
2
-
3
- import android.content.Context;
4
- import android.content.Intent;
5
- import android.util.Log;
6
-
7
- import com.facebook.react.bridge.Promise;
8
- import com.facebook.react.bridge.ReactApplicationContext;
9
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
10
- import com.facebook.react.bridge.ReactMethod;
11
- import android.os.Process;
12
- import java.io.File;
13
- import java.io.FileInputStream;
14
- import java.io.FileOutputStream;
15
- import java.io.InputStream;
16
- import java.io.OutputStream;
17
- import java.util.zip.ZipEntry;
18
- import java.util.zip.ZipInputStream;
19
- import androidx.annotation.NonNull;
20
- public class HotUpdateModule extends ReactContextBaseJavaModule {
21
- public HotUpdateModule(ReactApplicationContext reactContext) {
22
- super(reactContext);
23
- }
24
-
25
- private boolean deleteDirectory(File directory) {
26
- if (directory.isDirectory()) {
27
- // List all files and directories in the current directory
28
- File[] files = directory.listFiles();
29
- if (files != null) {
30
- // Recursively delete all files and directories
31
- for (File file : files) {
32
- if (!deleteDirectory(file)) {
33
- return false;
34
- }
35
- }
36
- }
37
- }
38
- // Finally, delete the empty directory or file
39
- return directory.delete();
40
- }
41
- private boolean deleteOldBundleIfneeded() {
42
- SharedPrefs sharedPrefs = new SharedPrefs(getReactApplicationContext());
43
- String path = sharedPrefs.getString(Common.INSTANCE.getPATH());
44
- File file = new File(path);
45
- if (file.exists() && file.isFile()) {
46
- boolean isDeleted = deleteDirectory(file.getParentFile());
47
- sharedPrefs.clear();
48
- return isDeleted;
49
- } else {
50
- return false;
51
- }
52
- }
53
- private String unzip(File zipFile, String extension) {
54
- File destDir = zipFile.getParentFile(); // Directory of the zip file
55
-
56
- String bundleFilePath = null;
57
- if (!destDir.exists()) {
58
- destDir.mkdirs();
59
- }
60
-
61
- try (InputStream is = new FileInputStream(zipFile);
62
- ZipInputStream zis = new ZipInputStream(is)) {
63
-
64
- ZipEntry zipEntry;
65
- while ((zipEntry = zis.getNextEntry()) != null) {
66
- File newFile = new File(destDir, zipEntry.getName());
67
- if (zipEntry.isDirectory()) {
68
- newFile.mkdirs();
69
- } else {
70
- // Create directories if they do not exist
71
- new File(newFile.getParent()).mkdirs();
72
- // Extract the file
73
- try (OutputStream os = new FileOutputStream(newFile)) {
74
- byte[] buffer = new byte[1024];
75
- int len;
76
- while ((len = zis.read(buffer)) > 0) {
77
- os.write(buffer, 0, len);
78
- }
79
- }
80
- }
81
- if (newFile.getAbsolutePath().contains(extension)) {
82
- bundleFilePath = newFile.getAbsolutePath();
83
- }
84
- }
85
- zis.closeEntry();
86
- } catch (Exception e) {
87
- return null;
88
- }
89
- return bundleFilePath;
90
- }
91
-
92
- @ReactMethod
93
- public void setupBundlePath(String path, String extension, Promise promise) {
94
- if (path != null) {
95
- deleteOldBundleIfneeded();
96
- File file = new File(path);
97
- if (file.exists() && file.isFile()) {
98
- String fileUnzip = unzip(file, extension != null ? extension : ".bundle");
99
- Log.d("setupBundlePath: ", fileUnzip);
100
- if (fileUnzip != null) {
101
- file.delete();
102
- SharedPrefs sharedPrefs = new SharedPrefs(getReactApplicationContext());
103
- sharedPrefs.putString(Common.INSTANCE.getPATH(), fileUnzip);
104
- promise.resolve(true);
105
- } else {
106
- promise.resolve(false);
107
- }
108
- } else {
109
- promise.resolve(false);
110
- }
111
- } else {
112
- promise.resolve(false);
113
- }
114
- }
115
-
116
- @ReactMethod
117
- public void deleteBundle(Promise promise) {
118
- boolean isDeleted = deleteOldBundleIfneeded();
119
- SharedPrefs sharedPrefs = new SharedPrefs(getReactApplicationContext());
120
- sharedPrefs.putString(Common.INSTANCE.getVERSION(), "0");
121
- promise.resolve(isDeleted);
122
- }
123
- @ReactMethod
124
- public void restart() {
125
- Context context = getCurrentActivity();
126
- Intent intent = context.getPackageManager()
127
- .getLaunchIntentForPackage(context.getPackageName());
128
- if (intent != null) {
129
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
130
- Intent.FLAG_ACTIVITY_NEW_TASK |
131
- Intent.FLAG_ACTIVITY_CLEAR_TASK);
132
-
133
- context.startActivity(intent);
134
- Process.killProcess(Process.myPid());
135
- System.exit(0);
136
- }
137
- }
138
- @ReactMethod
139
- public void getCurrentVersion(Promise promise) {
140
- SharedPrefs sharedPrefs = new SharedPrefs(getReactApplicationContext());
141
- String version = sharedPrefs.getString(Common.INSTANCE.getVERSION());
142
- if (!version.equals("")) {
143
- promise.resolve(version);
144
- } else {
145
- promise.resolve("0");
146
- }
147
-
148
- }
149
- @ReactMethod
150
- public void setCurrentVersion(String version, Promise promise) {
151
- SharedPrefs sharedPrefs = new SharedPrefs(getReactApplicationContext());
152
- sharedPrefs.putString(Common.INSTANCE.getVERSION(), version);
153
- promise.resolve(true);
154
- }
155
-
156
- @NonNull
157
- @Override
158
- public String getName() {
159
- return "RNhotupdate";
160
- }
161
- }
@@ -1,45 +0,0 @@
1
- package com.rnhotupdate;
2
-
3
- import android.content.Context;
4
-
5
- import com.facebook.react.ReactPackage;
6
- import com.facebook.react.bridge.NativeModule;
7
- import com.facebook.react.bridge.ReactApplicationContext;
8
- import com.facebook.react.uimanager.ViewManager;
9
-
10
- import java.util.ArrayList;
11
- import java.util.Collections;
12
- import java.util.List;
13
-
14
- import androidx.annotation.NonNull;
15
-
16
- public class OtaHotUpdate implements ReactPackage {
17
- private static Context mContext;
18
- public OtaHotUpdate(Context context) {
19
- mContext = context;
20
- }
21
- @NonNull
22
- @Override
23
- public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactApplicationContext) {
24
- List<NativeModule> modules = new ArrayList<>();
25
- modules.add(new HotUpdateModule(reactApplicationContext));
26
- return modules;
27
- }
28
-
29
- @NonNull
30
- @Override
31
- public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactApplicationContext) {
32
- return Collections.emptyList();
33
- }
34
- public static String getBundleJS() {
35
- if (mContext == null) {
36
- return Common.INSTANCE.getDEFAULT_BUNDLE();
37
- }
38
- SharedPrefs sharedPrefs = new SharedPrefs(mContext);
39
- String pathBundle = sharedPrefs.getString(Common.INSTANCE.getPATH());
40
- if (pathBundle.equals("")) {
41
- return Common.INSTANCE.getDEFAULT_BUNDLE();
42
- }
43
- return pathBundle;
44
- }
45
- }
package/ios/RNhotupdate.h DELETED
@@ -1,12 +0,0 @@
1
- #import <React/RCTReloadCommand.h>
2
- #ifdef RCT_NEW_ARCH_ENABLED
3
- #import "RNRNhotupdateSpec.h"
4
-
5
- @interface RNhotupdate : NSObject <NativeRNhotupdateSpec>
6
- #else
7
- #import <React/RCTBridgeModule.h>
8
-
9
- @interface RNhotupdate : NSObject <RCTBridgeModule>
10
- #endif
11
- + (NSURL *)getBundle;
12
- @end
@@ -1,281 +0,0 @@
1
- // !$*UTF8*$!
2
- {
3
- archiveVersion = 1;
4
- classes = {
5
- };
6
- objectVersion = 46;
7
- objects = {
8
-
9
- /* Begin PBXCopyFilesBuildPhase section */
10
- 58B511D91A9E6C8500147676 /* CopyFiles */ = {
11
- isa = PBXCopyFilesBuildPhase;
12
- buildActionMask = 2147483647;
13
- dstPath = "include/$(PRODUCT_NAME)";
14
- dstSubfolderSpec = 16;
15
- files = (
16
- );
17
- runOnlyForDeploymentPostprocessing = 0;
18
- };
19
- /* End PBXCopyFilesBuildPhase section */
20
-
21
- /* Begin PBXFileReference section */
22
- 134814201AA4EA6300B7C361 /* libRNhotupdate.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNhotupdate.a; sourceTree = BUILT_PRODUCTS_DIR; };
23
- /* End PBXFileReference section */
24
-
25
- /* Begin PBXFrameworksBuildPhase section */
26
- 58B511D81A9E6C8500147676 /* Frameworks */ = {
27
- isa = PBXFrameworksBuildPhase;
28
- buildActionMask = 2147483647;
29
- files = (
30
- );
31
- runOnlyForDeploymentPostprocessing = 0;
32
- };
33
- /* End PBXFrameworksBuildPhase section */
34
-
35
- /* Begin PBXGroup section */
36
- 134814211AA4EA7D00B7C361 /* Products */ = {
37
- isa = PBXGroup;
38
- children = (
39
- 134814201AA4EA6300B7C361 /* libRNhotupdate.a */,
40
- );
41
- name = Products;
42
- sourceTree = "<group>";
43
- };
44
- 58B511D21A9E6C8500147676 = {
45
- isa = PBXGroup;
46
- children = (
47
- 134814211AA4EA7D00B7C361 /* Products */,
48
- );
49
- sourceTree = "<group>";
50
- };
51
- /* End PBXGroup section */
52
-
53
- /* Begin PBXNativeTarget section */
54
- 58B511DA1A9E6C8500147676 /* RNhotupdate */ = {
55
- isa = PBXNativeTarget;
56
- buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNhotupdate" */;
57
- buildPhases = (
58
- 58B511D71A9E6C8500147676 /* Sources */,
59
- 58B511D81A9E6C8500147676 /* Frameworks */,
60
- 58B511D91A9E6C8500147676 /* CopyFiles */,
61
- );
62
- buildRules = (
63
- );
64
- dependencies = (
65
- );
66
- name = RNhotupdate;
67
- productName = RCTDataManager;
68
- productReference = 134814201AA4EA6300B7C361 /* libRNhotupdate.a */;
69
- productType = "com.apple.product-type.library.static";
70
- };
71
- /* End PBXNativeTarget section */
72
-
73
- /* Begin PBXProject section */
74
- 58B511D31A9E6C8500147676 /* Project object */ = {
75
- isa = PBXProject;
76
- attributes = {
77
- LastUpgradeCheck = 0920;
78
- ORGANIZATIONNAME = Facebook;
79
- TargetAttributes = {
80
- 58B511DA1A9E6C8500147676 = {
81
- CreatedOnToolsVersion = 6.1.1;
82
- };
83
- };
84
- };
85
- buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNhotupdate" */;
86
- compatibilityVersion = "Xcode 3.2";
87
- developmentRegion = en;
88
- hasScannedForEncodings = 0;
89
- knownRegions = (
90
- en,
91
- Base,
92
- );
93
- mainGroup = 58B511D21A9E6C8500147676;
94
- productRefGroup = 58B511D21A9E6C8500147676;
95
- projectDirPath = "";
96
- projectRoot = "";
97
- targets = (
98
- 58B511DA1A9E6C8500147676 /* RNhotupdate */,
99
- );
100
- };
101
- /* End PBXProject section */
102
-
103
- /* Begin PBXSourcesBuildPhase section */
104
- 58B511D71A9E6C8500147676 /* Sources */ = {
105
- isa = PBXSourcesBuildPhase;
106
- buildActionMask = 2147483647;
107
- files = (
108
- );
109
- runOnlyForDeploymentPostprocessing = 0;
110
- };
111
- /* End PBXSourcesBuildPhase section */
112
-
113
- /* Begin XCBuildConfiguration section */
114
- 58B511ED1A9E6C8500147676 /* Debug */ = {
115
- isa = XCBuildConfiguration;
116
- buildSettings = {
117
- ALWAYS_SEARCH_USER_PATHS = NO;
118
- CLANG_ANALYZER_NONNULL = YES;
119
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
120
- CLANG_CXX_LIBRARY = "libc++";
121
- CLANG_ENABLE_MODULES = YES;
122
- CLANG_ENABLE_OBJC_ARC = YES;
123
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
124
- CLANG_WARN_BOOL_CONVERSION = YES;
125
- CLANG_WARN_COMMA = YES;
126
- CLANG_WARN_CONSTANT_CONVERSION = YES;
127
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
128
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
129
- CLANG_WARN_EMPTY_BODY = YES;
130
- CLANG_WARN_ENUM_CONVERSION = YES;
131
- CLANG_WARN_INFINITE_RECURSION = YES;
132
- CLANG_WARN_INT_CONVERSION = YES;
133
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
134
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
135
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
136
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
137
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
138
- CLANG_WARN_STRICT_PROTOTYPES = YES;
139
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
140
- CLANG_WARN_UNREACHABLE_CODE = YES;
141
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
142
- COPY_PHASE_STRIP = NO;
143
- ENABLE_STRICT_OBJC_MSGSEND = YES;
144
- ENABLE_TESTABILITY = YES;
145
- GCC_C_LANGUAGE_STANDARD = gnu99;
146
- GCC_DYNAMIC_NO_PIC = NO;
147
- GCC_NO_COMMON_BLOCKS = YES;
148
- GCC_OPTIMIZATION_LEVEL = 0;
149
- GCC_PREPROCESSOR_DEFINITIONS = (
150
- "DEBUG=1",
151
- "$(inherited)",
152
- );
153
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
154
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
155
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
156
- GCC_WARN_UNDECLARED_SELECTOR = YES;
157
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
158
- GCC_WARN_UNUSED_FUNCTION = YES;
159
- GCC_WARN_UNUSED_VARIABLE = YES;
160
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
161
- LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
162
- LIBRARY_SEARCH_PATHS = (
163
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
164
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
165
- "\"$(inherited)\"",
166
- );
167
- MTL_ENABLE_DEBUG_INFO = YES;
168
- ONLY_ACTIVE_ARCH = YES;
169
- SDKROOT = iphoneos;
170
- };
171
- name = Debug;
172
- };
173
- 58B511EE1A9E6C8500147676 /* Release */ = {
174
- isa = XCBuildConfiguration;
175
- buildSettings = {
176
- ALWAYS_SEARCH_USER_PATHS = NO;
177
- CLANG_ANALYZER_NONNULL = YES;
178
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
179
- CLANG_CXX_LIBRARY = "libc++";
180
- CLANG_ENABLE_MODULES = YES;
181
- CLANG_ENABLE_OBJC_ARC = YES;
182
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
183
- CLANG_WARN_BOOL_CONVERSION = YES;
184
- CLANG_WARN_COMMA = YES;
185
- CLANG_WARN_CONSTANT_CONVERSION = YES;
186
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
187
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
188
- CLANG_WARN_EMPTY_BODY = YES;
189
- CLANG_WARN_ENUM_CONVERSION = YES;
190
- CLANG_WARN_INFINITE_RECURSION = YES;
191
- CLANG_WARN_INT_CONVERSION = YES;
192
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
193
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
194
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
195
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
196
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
197
- CLANG_WARN_STRICT_PROTOTYPES = YES;
198
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
199
- CLANG_WARN_UNREACHABLE_CODE = YES;
200
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
201
- COPY_PHASE_STRIP = YES;
202
- ENABLE_NS_ASSERTIONS = NO;
203
- ENABLE_STRICT_OBJC_MSGSEND = YES;
204
- GCC_C_LANGUAGE_STANDARD = gnu99;
205
- GCC_NO_COMMON_BLOCKS = YES;
206
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
207
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
208
- GCC_WARN_UNDECLARED_SELECTOR = YES;
209
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
210
- GCC_WARN_UNUSED_FUNCTION = YES;
211
- GCC_WARN_UNUSED_VARIABLE = YES;
212
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
213
- LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
214
- LIBRARY_SEARCH_PATHS = (
215
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
216
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
217
- "\"$(inherited)\"",
218
- );
219
- MTL_ENABLE_DEBUG_INFO = NO;
220
- SDKROOT = iphoneos;
221
- VALIDATE_PRODUCT = YES;
222
- };
223
- name = Release;
224
- };
225
- 58B511F01A9E6C8500147676 /* Debug */ = {
226
- isa = XCBuildConfiguration;
227
- buildSettings = {
228
- HEADER_SEARCH_PATHS = (
229
- "$(inherited)",
230
- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
231
- "$(SRCROOT)/../../../React/**",
232
- "$(SRCROOT)/../../react-native/React/**",
233
- );
234
- LIBRARY_SEARCH_PATHS = "$(inherited)";
235
- OTHER_LDFLAGS = "-ObjC";
236
- PRODUCT_NAME = RNhotupdate;
237
- SKIP_INSTALL = YES;
238
- };
239
- name = Debug;
240
- };
241
- 58B511F11A9E6C8500147676 /* Release */ = {
242
- isa = XCBuildConfiguration;
243
- buildSettings = {
244
- HEADER_SEARCH_PATHS = (
245
- "$(inherited)",
246
- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
247
- "$(SRCROOT)/../../../React/**",
248
- "$(SRCROOT)/../../react-native/React/**",
249
- );
250
- LIBRARY_SEARCH_PATHS = "$(inherited)";
251
- OTHER_LDFLAGS = "-ObjC";
252
- PRODUCT_NAME = RNhotupdate;
253
- SKIP_INSTALL = YES;
254
- };
255
- name = Release;
256
- };
257
- /* End XCBuildConfiguration section */
258
-
259
- /* Begin XCConfigurationList section */
260
- 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNhotupdate" */ = {
261
- isa = XCConfigurationList;
262
- buildConfigurations = (
263
- 58B511ED1A9E6C8500147676 /* Debug */,
264
- 58B511EE1A9E6C8500147676 /* Release */,
265
- );
266
- defaultConfigurationIsVisible = 0;
267
- defaultConfigurationName = Release;
268
- };
269
- 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNhotupdate" */ = {
270
- isa = XCConfigurationList;
271
- buildConfigurations = (
272
- 58B511F01A9E6C8500147676 /* Debug */,
273
- 58B511F11A9E6C8500147676 /* Release */,
274
- );
275
- defaultConfigurationIsVisible = 0;
276
- defaultConfigurationName = Release;
277
- };
278
- /* End XCConfigurationList section */
279
- };
280
- rootObject = 58B511D31A9E6C8500147676 /* Project object */;
281
- }
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Workspace
3
- version = "1.0">
4
- <FileRef
5
- location = "group:RNhotupdate.xcodeproj">
6
- </FileRef>
7
- </Workspace>