@appzung/react-native-code-push 9.0.2 → 10.0.0
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.
- package/CodePush.podspec +1 -0
- package/LICENSE.md +1 -1
- package/README.md +169 -329
- package/android/app/.gradle/config.properties +2 -0
- package/android/app/build.gradle +63 -19
- package/android/app/local.properties +8 -0
- package/android/app/src/main/AndroidManifest.xml +2 -3
- package/android/app/src/main/AndroidManifestNew.xml +3 -0
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePush.java +35 -97
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushConstants.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushInstallMode.java +2 -2
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushInvalidPublicKeyException.java +2 -2
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushInvalidUpdateException.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushMalformedDataException.java +2 -2
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushNativeModule.java +37 -8
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushNotInitializedException.java +2 -2
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushTelemetryManager.java +14 -14
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUnknownException.java +2 -2
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUpdateManager.java +3 -3
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUpdateState.java +2 -2
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUpdateUtils.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUtils.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/DownloadProgress.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/DownloadProgressCallback.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/FileUtils.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/ReactInstanceHolder.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/SettingsManager.java +1 -1
- package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/TLSSocketFactory.java +1 -1
- package/android/build.gradle +1 -11
- package/android/codepush.gradle +3 -3
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/gradle.properties +4 -20
- package/docs/advanced-usage.md +56 -0
- package/docs/api-android.md +16 -77
- package/docs/api-ios.md +9 -21
- package/docs/api-js.md +184 -219
- package/docs/code-signing.md +62 -0
- package/docs/migrating-to-v10.md +31 -0
- package/docs/setup-android.md +54 -463
- package/docs/setup-ios.md +37 -208
- package/docs/setup-windows.md +8 -74
- package/ios/CodePush/CodePush.h +4 -4
- package/ios/CodePush/CodePush.m +21 -65
- package/ios/CodePush/CodePushConfig.m +14 -11
- package/ios/CodePush/CodePushPackage.m +60 -60
- package/ios/CodePush/CodePushTelemetryManager.m +13 -13
- package/ios/CodePush.xcodeproj/project.pbxproj +1 -562
- package/lib/commonjs/CodePush.js +90 -0
- package/lib/commonjs/CodePush.js.map +1 -0
- package/lib/commonjs/allowRestart.js +12 -0
- package/lib/commonjs/allowRestart.js.map +1 -0
- package/lib/commonjs/checkForUpdates.js +105 -0
- package/lib/commonjs/checkForUpdates.js.map +1 -0
- package/lib/commonjs/clearUpdates.js +15 -0
- package/lib/commonjs/clearUpdates.js.map +1 -0
- package/lib/commonjs/disallowRestart.js +12 -0
- package/lib/commonjs/disallowRestart.js.map +1 -0
- package/lib/commonjs/enums/CheckFrequency.enum.js +25 -0
- package/lib/commonjs/enums/CheckFrequency.enum.js.map +1 -0
- package/lib/commonjs/enums/DeploymentStatus.enum.js +21 -0
- package/lib/commonjs/enums/DeploymentStatus.enum.js.map +1 -0
- package/lib/commonjs/enums/InstallMode.enum.js +35 -0
- package/lib/commonjs/enums/InstallMode.enum.js.map +1 -0
- package/lib/commonjs/enums/SyncStatus.enum.js +53 -0
- package/lib/commonjs/enums/SyncStatus.enum.js.map +1 -0
- package/lib/commonjs/enums/UpdateState.enum.js +29 -0
- package/lib/commonjs/enums/UpdateState.enum.js.map +1 -0
- package/lib/commonjs/getUpdateMetadata.js +25 -0
- package/lib/commonjs/getUpdateMetadata.js.map +1 -0
- package/lib/commonjs/index.js +195 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/internals/AcquisitionSdk.js +9 -0
- package/lib/commonjs/internals/AcquisitionSdk.js.map +1 -0
- package/lib/commonjs/internals/LocalPackageImplementation.js +29 -0
- package/lib/commonjs/internals/LocalPackageImplementation.js.map +1 -0
- package/lib/commonjs/internals/NativeRNAppZungCodePushModule.js +8 -0
- package/lib/commonjs/internals/NativeRNAppZungCodePushModule.js.map +1 -0
- package/lib/commonjs/internals/RNAppZungCodePushModuleSpec.js +6 -0
- package/lib/commonjs/internals/RNAppZungCodePushModuleSpec.js.map +1 -0
- package/lib/commonjs/internals/RemotePackageImplementation.js +49 -0
- package/lib/commonjs/internals/RemotePackageImplementation.js.map +1 -0
- package/lib/commonjs/internals/getConfiguration.js +15 -0
- package/lib/commonjs/internals/getConfiguration.js.map +1 -0
- package/lib/commonjs/internals/getCurrentPackage.js +12 -0
- package/lib/commonjs/internals/getCurrentPackage.js.map +1 -0
- package/lib/commonjs/internals/getPromisifiedSdk.js +49 -0
- package/lib/commonjs/internals/getPromisifiedSdk.js.map +1 -0
- package/lib/commonjs/internals/shouldUpdateBeIgnored.js +62 -0
- package/lib/commonjs/internals/shouldUpdateBeIgnored.js.map +1 -0
- package/lib/commonjs/internals/types.js +6 -0
- package/lib/commonjs/internals/types.js.map +1 -0
- package/lib/commonjs/internals/utils/log.js +11 -0
- package/lib/commonjs/internals/utils/log.js.map +1 -0
- package/lib/commonjs/internals/utils/request-fetch-adapter.js +50 -0
- package/lib/commonjs/internals/utils/request-fetch-adapter.js.map +1 -0
- package/lib/commonjs/internals/version.js +9 -0
- package/lib/commonjs/internals/version.js.map +1 -0
- package/lib/commonjs/notifyAppReady.js +83 -0
- package/lib/commonjs/notifyAppReady.js.map +1 -0
- package/lib/commonjs/reactNative.d.js +2 -0
- package/lib/commonjs/reactNative.d.js.map +1 -0
- package/lib/commonjs/restartApp.js +16 -0
- package/lib/commonjs/restartApp.js.map +1 -0
- package/lib/commonjs/sync.js +219 -0
- package/lib/commonjs/sync.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/CodePush.js +84 -0
- package/lib/module/CodePush.js.map +1 -0
- package/lib/module/allowRestart.js +9 -0
- package/lib/module/allowRestart.js.map +1 -0
- package/lib/module/checkForUpdates.js +101 -0
- package/lib/module/checkForUpdates.js.map +1 -0
- package/lib/module/clearUpdates.js +12 -0
- package/lib/module/clearUpdates.js.map +1 -0
- package/lib/module/disallowRestart.js +9 -0
- package/lib/module/disallowRestart.js.map +1 -0
- package/lib/module/enums/CheckFrequency.enum.js +21 -0
- package/lib/module/enums/CheckFrequency.enum.js.map +1 -0
- package/lib/module/enums/DeploymentStatus.enum.js +17 -0
- package/lib/module/enums/DeploymentStatus.enum.js.map +1 -0
- package/lib/module/enums/InstallMode.enum.js +32 -0
- package/lib/module/enums/InstallMode.enum.js.map +1 -0
- package/lib/module/enums/SyncStatus.enum.js +49 -0
- package/lib/module/enums/SyncStatus.enum.js.map +1 -0
- package/lib/module/enums/UpdateState.enum.js +26 -0
- package/lib/module/enums/UpdateState.enum.js.map +1 -0
- package/lib/module/getUpdateMetadata.js +21 -0
- package/lib/module/getUpdateMetadata.js.map +1 -0
- package/lib/module/index.js +19 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/internals/AcquisitionSdk.js +5 -0
- package/lib/module/internals/AcquisitionSdk.js.map +1 -0
- package/lib/module/internals/LocalPackageImplementation.js +24 -0
- package/lib/module/internals/LocalPackageImplementation.js.map +1 -0
- package/lib/module/internals/NativeRNAppZungCodePushModule.js +4 -0
- package/lib/module/internals/NativeRNAppZungCodePushModule.js.map +1 -0
- package/lib/module/internals/RNAppZungCodePushModuleSpec.js +4 -0
- package/lib/module/internals/RNAppZungCodePushModuleSpec.js.map +1 -0
- package/lib/module/internals/RemotePackageImplementation.js +44 -0
- package/lib/module/internals/RemotePackageImplementation.js.map +1 -0
- package/lib/module/internals/getConfiguration.js +11 -0
- package/lib/module/internals/getConfiguration.js.map +1 -0
- package/lib/module/internals/getCurrentPackage.js +8 -0
- package/lib/module/internals/getCurrentPackage.js.map +1 -0
- package/lib/module/internals/getPromisifiedSdk.js +45 -0
- package/lib/module/internals/getPromisifiedSdk.js.map +1 -0
- package/lib/module/internals/shouldUpdateBeIgnored.js +58 -0
- package/lib/module/internals/shouldUpdateBeIgnored.js.map +1 -0
- package/lib/module/internals/types.js +4 -0
- package/lib/module/internals/types.js.map +1 -0
- package/lib/module/internals/utils/log.js +7 -0
- package/lib/module/internals/utils/log.js.map +1 -0
- package/lib/module/internals/utils/request-fetch-adapter.js +46 -0
- package/lib/module/internals/utils/request-fetch-adapter.js.map +1 -0
- package/lib/module/internals/version.js +5 -0
- package/lib/module/internals/version.js.map +1 -0
- package/lib/module/notifyAppReady.js +79 -0
- package/lib/module/notifyAppReady.js.map +1 -0
- package/lib/module/reactNative.d.js +2 -0
- package/lib/module/reactNative.d.js.map +1 -0
- package/lib/module/restartApp.js +13 -0
- package/lib/module/restartApp.js.map +1 -0
- package/lib/module/sync.js +215 -0
- package/lib/module/sync.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/CodePush.d.ts +24 -0
- package/lib/typescript/commonjs/src/CodePush.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/allowRestart.d.ts +5 -0
- package/lib/typescript/commonjs/src/allowRestart.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/checkForUpdates.d.ts +9 -0
- package/lib/typescript/commonjs/src/checkForUpdates.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/clearUpdates.d.ts +8 -0
- package/lib/typescript/commonjs/src/clearUpdates.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/disallowRestart.d.ts +5 -0
- package/lib/typescript/commonjs/src/disallowRestart.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/enums/CheckFrequency.enum.d.ts +18 -0
- package/lib/typescript/commonjs/src/enums/CheckFrequency.enum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/enums/DeploymentStatus.enum.d.ts +14 -0
- package/lib/typescript/commonjs/src/enums/DeploymentStatus.enum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/enums/InstallMode.enum.d.ts +27 -0
- package/lib/typescript/commonjs/src/enums/InstallMode.enum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/enums/SyncStatus.enum.d.ts +46 -0
- package/lib/typescript/commonjs/src/enums/SyncStatus.enum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/enums/UpdateState.enum.d.ts +21 -0
- package/lib/typescript/commonjs/src/enums/UpdateState.enum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/getUpdateMetadata.d.ts +9 -0
- package/lib/typescript/commonjs/src/getUpdateMetadata.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +17 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/AcquisitionSdk.d.ts +3 -0
- package/lib/typescript/commonjs/src/internals/AcquisitionSdk.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/LocalPackageImplementation.d.ts +17 -0
- package/lib/typescript/commonjs/src/internals/LocalPackageImplementation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/NativeRNAppZungCodePushModule.d.ts +3 -0
- package/lib/typescript/commonjs/src/internals/NativeRNAppZungCodePushModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/RNAppZungCodePushModuleSpec.d.ts +36 -0
- package/lib/typescript/commonjs/src/internals/RNAppZungCodePushModuleSpec.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/RemotePackageImplementation.d.ts +18 -0
- package/lib/typescript/commonjs/src/internals/RemotePackageImplementation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/getConfiguration.d.ts +3 -0
- package/lib/typescript/commonjs/src/internals/getConfiguration.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/getCurrentPackage.d.ts +2 -0
- package/lib/typescript/commonjs/src/internals/getCurrentPackage.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/getPromisifiedSdk.d.ts +13 -0
- package/lib/typescript/commonjs/src/internals/getPromisifiedSdk.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/shouldUpdateBeIgnored.d.ts +3 -0
- package/lib/typescript/commonjs/src/internals/shouldUpdateBeIgnored.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/types.d.ts +16 -0
- package/lib/typescript/commonjs/src/internals/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/utils/log.d.ts +2 -0
- package/lib/typescript/commonjs/src/internals/utils/log.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/utils/request-fetch-adapter.d.ts +3 -0
- package/lib/typescript/commonjs/src/internals/utils/request-fetch-adapter.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/version.d.ts +2 -0
- package/lib/typescript/commonjs/src/internals/version.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/notifyAppReady.d.ts +6 -0
- package/lib/typescript/commonjs/src/notifyAppReady.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/restartApp.d.ts +7 -0
- package/lib/typescript/commonjs/src/restartApp.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/sync.d.ts +17 -0
- package/lib/typescript/commonjs/src/sync.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types.d.ts +196 -0
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/CodePush.d.ts +24 -0
- package/lib/typescript/module/src/CodePush.d.ts.map +1 -0
- package/lib/typescript/module/src/allowRestart.d.ts +5 -0
- package/lib/typescript/module/src/allowRestart.d.ts.map +1 -0
- package/lib/typescript/module/src/checkForUpdates.d.ts +9 -0
- package/lib/typescript/module/src/checkForUpdates.d.ts.map +1 -0
- package/lib/typescript/module/src/clearUpdates.d.ts +8 -0
- package/lib/typescript/module/src/clearUpdates.d.ts.map +1 -0
- package/lib/typescript/module/src/disallowRestart.d.ts +5 -0
- package/lib/typescript/module/src/disallowRestart.d.ts.map +1 -0
- package/lib/typescript/module/src/enums/CheckFrequency.enum.d.ts +18 -0
- package/lib/typescript/module/src/enums/CheckFrequency.enum.d.ts.map +1 -0
- package/lib/typescript/module/src/enums/DeploymentStatus.enum.d.ts +14 -0
- package/lib/typescript/module/src/enums/DeploymentStatus.enum.d.ts.map +1 -0
- package/lib/typescript/module/src/enums/InstallMode.enum.d.ts +27 -0
- package/lib/typescript/module/src/enums/InstallMode.enum.d.ts.map +1 -0
- package/lib/typescript/module/src/enums/SyncStatus.enum.d.ts +46 -0
- package/lib/typescript/module/src/enums/SyncStatus.enum.d.ts.map +1 -0
- package/lib/typescript/module/src/enums/UpdateState.enum.d.ts +21 -0
- package/lib/typescript/module/src/enums/UpdateState.enum.d.ts.map +1 -0
- package/lib/typescript/module/src/getUpdateMetadata.d.ts +9 -0
- package/lib/typescript/module/src/getUpdateMetadata.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +17 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/AcquisitionSdk.d.ts +3 -0
- package/lib/typescript/module/src/internals/AcquisitionSdk.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/LocalPackageImplementation.d.ts +17 -0
- package/lib/typescript/module/src/internals/LocalPackageImplementation.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/NativeRNAppZungCodePushModule.d.ts +3 -0
- package/lib/typescript/module/src/internals/NativeRNAppZungCodePushModule.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/RNAppZungCodePushModuleSpec.d.ts +36 -0
- package/lib/typescript/module/src/internals/RNAppZungCodePushModuleSpec.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/RemotePackageImplementation.d.ts +18 -0
- package/lib/typescript/module/src/internals/RemotePackageImplementation.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/getConfiguration.d.ts +3 -0
- package/lib/typescript/module/src/internals/getConfiguration.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/getCurrentPackage.d.ts +2 -0
- package/lib/typescript/module/src/internals/getCurrentPackage.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/getPromisifiedSdk.d.ts +13 -0
- package/lib/typescript/module/src/internals/getPromisifiedSdk.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/shouldUpdateBeIgnored.d.ts +3 -0
- package/lib/typescript/module/src/internals/shouldUpdateBeIgnored.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/types.d.ts +16 -0
- package/lib/typescript/module/src/internals/types.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/utils/log.d.ts +2 -0
- package/lib/typescript/module/src/internals/utils/log.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/utils/request-fetch-adapter.d.ts +3 -0
- package/lib/typescript/module/src/internals/utils/request-fetch-adapter.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/version.d.ts +2 -0
- package/lib/typescript/module/src/internals/version.d.ts.map +1 -0
- package/lib/typescript/module/src/notifyAppReady.d.ts +6 -0
- package/lib/typescript/module/src/notifyAppReady.d.ts.map +1 -0
- package/lib/typescript/module/src/restartApp.d.ts +7 -0
- package/lib/typescript/module/src/restartApp.d.ts.map +1 -0
- package/lib/typescript/module/src/sync.d.ts +17 -0
- package/lib/typescript/module/src/sync.d.ts.map +1 -0
- package/lib/typescript/module/src/types.d.ts +196 -0
- package/lib/typescript/module/src/types.d.ts.map +1 -0
- package/package.json +79 -29
- package/react-native.config.js +8 -8
- package/scripts/generateBundledResourcesHash.js +1 -1
- package/scripts/getFilesInFolder.js +1 -1
- package/scripts/recordFilesBeforeBundleCommand.js +1 -1
- package/src/CodePush.tsx +108 -0
- package/src/allowRestart.ts +6 -0
- package/src/checkForUpdates.ts +109 -0
- package/src/clearUpdates.ts +9 -0
- package/src/disallowRestart.ts +6 -0
- package/src/enums/CheckFrequency.enum.ts +19 -0
- package/src/enums/DeploymentStatus.enum.ts +14 -0
- package/src/enums/InstallMode.enum.ts +31 -0
- package/src/enums/SyncStatus.enum.ts +53 -0
- package/src/enums/UpdateState.enum.ts +24 -0
- package/src/getUpdateMetadata.ts +23 -0
- package/src/index.ts +18 -0
- package/src/internals/AcquisitionSdk.ts +3 -0
- package/src/internals/LocalPackageImplementation.ts +45 -0
- package/src/internals/NativeRNAppZungCodePushModule.ts +3 -0
- package/src/internals/RNAppZungCodePushModuleSpec.ts +54 -0
- package/src/internals/RemotePackageImplementation.ts +69 -0
- package/src/internals/getConfiguration.ts +12 -0
- package/src/internals/getCurrentPackage.ts +6 -0
- package/src/internals/getPromisifiedSdk.ts +72 -0
- package/src/internals/shouldUpdateBeIgnored.ts +76 -0
- package/src/internals/types.ts +18 -0
- package/{logging.js → src/internals/utils/log.ts} +1 -3
- package/src/internals/utils/request-fetch-adapter.ts +58 -0
- package/src/internals/version.ts +2 -0
- package/src/notifyAppReady.ts +94 -0
- package/src/reactNative.d.ts +34 -0
- package/src/restartApp.ts +10 -0
- package/src/sync.ts +272 -0
- package/src/types.ts +237 -0
- package/tsconfig.build.json +4 -0
- package/tsconfig.json +29 -12
- package/windows/CodePush/CodePushConfig.cpp +3 -3
- package/windows/CodePush/CodePushConfig.h +3 -3
- package/windows/CodePush/CodePushNativeModule.cpp +27 -27
- package/windows/CodePush/CodePushNativeModule.h +4 -4
- package/windows/CodePush/CodePushTelemetryManager.cpp +12 -12
- package/windows/CodePush/CodePushTelemetryManager.h +1 -1
- package/.azurepipelines/build-rn-code-push-1es.yml +0 -104
- package/.azurepipelines/test-rn-code-push.yml +0 -94
- package/.config/CredScanSuppressions.json +0 -14
- package/AlertAdapter.js +0 -24
- package/CONTRIBUTING.md +0 -134
- package/CodePush.js +0 -671
- package/SECURITY.md +0 -41
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +0 -37
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java +0 -102
- package/docs/multi-deployment-testing-android.md +0 -148
- package/docs/multi-deployment-testing-ios.md +0 -59
- package/ios/CodePush/Base64/Base64/MF_Base64Additions.h +0 -34
- package/ios/CodePush/Base64/Base64/MF_Base64Additions.m +0 -252
- package/ios/CodePush/Base64/README.md +0 -47
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h +0 -69
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h +0 -16
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m +0 -51
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h +0 -15
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m +0 -55
- package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h +0 -24
- package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m +0 -41
- package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h +0 -28
- package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m +0 -205
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h +0 -103
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m +0 -322
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h +0 -37
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m +0 -145
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h +0 -35
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m +0 -551
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h +0 -23
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h +0 -43
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m +0 -230
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h +0 -31
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m +0 -113
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h +0 -38
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m +0 -500
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h +0 -18
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m +0 -214
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h +0 -23
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m +0 -29
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h +0 -19
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m +0 -68
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h +0 -18
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m +0 -72
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h +0 -67
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m +0 -111
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h +0 -119
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m +0 -307
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.h +0 -94
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.m +0 -619
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.h +0 -164
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.m +0 -514
- package/ios/CodePush/JWT/Core/Coding/JWTCoding.h +0 -24
- package/ios/CodePush/JWT/Core/Coding/JWTCoding.m +0 -11
- package/ios/CodePush/JWT/Core/FrameworkSupplement/JWT.h +0 -52
- package/ios/CodePush/JWT/Core/FrameworkSupplement/Map.modulemap +0 -5
- package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.h +0 -28
- package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.m +0 -70
- package/ios/CodePush/JWT/Core/Supplement/JWTDeprecations.h +0 -22
- package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.h +0 -34
- package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.m +0 -73
- package/ios/CodePush/JWT/LICENSE +0 -19
- package/ios/CodePush/JWT/README.md +0 -489
- package/ios/CodePush/SSZipArchive/Info.plist +0 -26
- package/ios/CodePush/SSZipArchive/README.md +0 -1
- package/ios/CodePush/SSZipArchive/SSZipArchive.h +0 -178
- package/ios/CodePush/SSZipArchive/SSZipArchive.m +0 -1496
- package/ios/CodePush/SSZipArchive/SSZipCommon.h +0 -71
- package/ios/CodePush/SSZipArchive/Supporting Files/PrivacyInfo.xcprivacy +0 -23
- package/ios/CodePush/SSZipArchive/include/ZipArchive.h +0 -25
- package/ios/CodePush/SSZipArchive/minizip/LICENSE +0 -17
- package/ios/CodePush/SSZipArchive/minizip/mz.h +0 -273
- package/ios/CodePush/SSZipArchive/minizip/mz_compat.c +0 -1306
- package/ios/CodePush/SSZipArchive/minizip/mz_compat.h +0 -346
- package/ios/CodePush/SSZipArchive/minizip/mz_crypt.c +0 -187
- package/ios/CodePush/SSZipArchive/minizip/mz_crypt.h +0 -65
- package/ios/CodePush/SSZipArchive/minizip/mz_crypt_apple.c +0 -526
- package/ios/CodePush/SSZipArchive/minizip/mz_os.c +0 -348
- package/ios/CodePush/SSZipArchive/minizip/mz_os.h +0 -176
- package/ios/CodePush/SSZipArchive/minizip/mz_os_posix.c +0 -350
- package/ios/CodePush/SSZipArchive/minizip/mz_strm.c +0 -556
- package/ios/CodePush/SSZipArchive/minizip/mz_strm.h +0 -132
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.c +0 -383
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.h +0 -42
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.c +0 -269
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.h +0 -48
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_os.h +0 -40
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_os_posix.c +0 -203
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.c +0 -334
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.h +0 -46
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.c +0 -429
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.h +0 -43
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.c +0 -360
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.h +0 -46
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.c +0 -389
- package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.h +0 -43
- package/ios/CodePush/SSZipArchive/minizip/mz_zip.c +0 -2782
- package/ios/CodePush/SSZipArchive/minizip/mz_zip.h +0 -262
- package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.c +0 -1942
- package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.h +0 -285
- package/package-mixins.js +0 -68
- package/request-fetch-adapter.js +0 -52
- package/scripts/postlink/android/postlink.js +0 -87
- package/scripts/postlink/ios/postlink.js +0 -116
- package/scripts/postlink/run.js +0 -11
- package/scripts/postunlink/android/postunlink.js +0 -74
- package/scripts/postunlink/ios/postunlink.js +0 -87
- package/scripts/postunlink/run.js +0 -11
- package/scripts/tools/linkToolsAndroid.js +0 -57
- package/scripts/tools/linkToolsIos.js +0 -130
- package/tslint.json +0 -32
- package/typings/react-native-code-push.d.ts +0 -455
- package/windows-legacy/CodePush/CodePush.csproj +0 -128
- package/windows-legacy/CodePush/CodePushUtils.cs +0 -47
- package/windows-legacy/CodePush/FileUtils.cs +0 -40
- package/windows-legacy/CodePush/Properties/AssemblyInfo.cs +0 -29
- package/windows-legacy/CodePush/Properties/CodePush.rd.xml +0 -33
- package/windows-legacy/CodePush/UpdateManager.cs +0 -305
- package/windows-legacy/CodePush/UpdateUtils.cs +0 -46
- package/windows-legacy/CodePush.Net46/Adapters/Http/HttpProgress.cs +0 -28
- package/windows-legacy/CodePush.Net46/Adapters/Storage/ApplicationDataContainer.cs +0 -106
- package/windows-legacy/CodePush.Net46/CodePush.Net46.csproj +0 -103
- package/windows-legacy/CodePush.Net46/CodePushUtils.cs +0 -158
- package/windows-legacy/CodePush.Net46/FileUtils.cs +0 -55
- package/windows-legacy/CodePush.Net46/Properties/AssemblyInfo.cs +0 -36
- package/windows-legacy/CodePush.Net46/UpdateManager.cs +0 -330
- package/windows-legacy/CodePush.Net46/UpdateUtils.cs +0 -70
- package/windows-legacy/CodePush.Net46/packages.config +0 -5
- package/windows-legacy/CodePush.Net46.Test/ApplicationDataContainerTest.cs +0 -105
- package/windows-legacy/CodePush.Net46.Test/CodePush.Net46.Test.csproj +0 -137
- package/windows-legacy/CodePush.Net46.Test/Properties/AssemblyInfo.cs +0 -36
- package/windows-legacy/CodePush.Net46.Test/TelemetryManagerTest.cs +0 -117
- package/windows-legacy/CodePush.Net46.Test/app.config +0 -11
- package/windows-legacy/CodePush.Net46.Test/packages.config +0 -4
- package/windows-legacy/CodePush.Shared/CodePush.Shared.projitems +0 -22
- package/windows-legacy/CodePush.Shared/CodePush.Shared.shproj +0 -13
- package/windows-legacy/CodePush.Shared/CodePushConstants.cs +0 -35
- package/windows-legacy/CodePush.Shared/CodePushNativeModule.cs +0 -329
- package/windows-legacy/CodePush.Shared/CodePushReactPackage.cs +0 -235
- package/windows-legacy/CodePush.Shared/CodePushUtils.cs +0 -70
- package/windows-legacy/CodePush.Shared/InstallMode.cs +0 -9
- package/windows-legacy/CodePush.Shared/MinimumBackgroundListener.cs +0 -44
- package/windows-legacy/CodePush.Shared/SettingsManager.cs +0 -148
- package/windows-legacy/CodePush.Shared/TelemetryManager.cs +0 -250
- package/windows-legacy/CodePush.Shared/UpdateState.cs +0 -9
package/android/app/build.gradle
CHANGED
|
@@ -1,33 +1,77 @@
|
|
|
1
1
|
apply plugin: "com.android.library"
|
|
2
2
|
|
|
3
|
-
def
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def DEFAULT_MIN_SDK_VERSION = 16
|
|
3
|
+
def getExtOrDefault(name) {
|
|
4
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["CodePush_" + name]
|
|
5
|
+
}
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
def getExtOrIntegerDefault(name) {
|
|
8
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["CodePush_" + name]).toInteger()
|
|
9
|
+
}
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
def supportsNamespace() {
|
|
12
|
+
def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
|
|
13
|
+
def major = parsed[0].toInteger()
|
|
14
|
+
def minor = parsed[1].toInteger()
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
// Namespace support was added in 7.3.0
|
|
17
|
+
return (major == 7 && minor >= 3) || major >= 8
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
android {
|
|
21
|
+
if (supportsNamespace()) {
|
|
22
|
+
namespace "com.appzung.codepush.react"
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
sourceSets {
|
|
25
|
+
main {
|
|
26
|
+
manifest.srcFile "src/main/AndroidManifestNew.xml"
|
|
27
|
+
}
|
|
23
28
|
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
24
32
|
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
defaultConfig {
|
|
34
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
35
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
36
|
+
|
|
37
|
+
consumerProguardFiles 'proguard-rules.pro'
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
buildFeatures {
|
|
41
|
+
buildConfig true
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
buildTypes {
|
|
45
|
+
release {
|
|
46
|
+
minifyEnabled false
|
|
27
47
|
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
lintOptions {
|
|
51
|
+
disable "GradleCompatible"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
compileOptions {
|
|
55
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
56
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
repositories {
|
|
61
|
+
mavenCentral()
|
|
62
|
+
google()
|
|
28
63
|
}
|
|
29
64
|
|
|
65
|
+
def isInDevelopment = project.hasProperty('CodePush_development') && project.property('CodePush_development') == "true"
|
|
66
|
+
|
|
30
67
|
dependencies {
|
|
68
|
+
if (isInDevelopment) {
|
|
69
|
+
implementation("com.facebook.react:react-android:0.71.+")
|
|
70
|
+
} else {
|
|
71
|
+
// For < 0.71, this will be from the local maven repo
|
|
72
|
+
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
73
|
+
//noinspection GradleDynamicVersion
|
|
31
74
|
implementation "com.facebook.react:react-native:+"
|
|
32
|
-
|
|
75
|
+
}
|
|
76
|
+
implementation "com.nimbusds:nimbus-jose-jwt:9.37.3"
|
|
33
77
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## This file must *NOT* be checked into Version Control Systems,
|
|
2
|
+
# as it contains information specific to your local configuration.
|
|
3
|
+
#
|
|
4
|
+
# Location of the SDK. This is only used by Gradle.
|
|
5
|
+
# For customization when using a Version Control System, please read the
|
|
6
|
+
# header note.
|
|
7
|
+
#Wed Jan 22 01:48:35 CET 2025
|
|
8
|
+
sdk.dir=/Users/louislagrange/Library/Android/sdk
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.content.pm.PackageInfo;
|
|
5
5
|
import android.content.pm.PackageManager;
|
|
6
|
-
import android.content.res.Resources;
|
|
7
6
|
|
|
8
7
|
import com.facebook.react.ReactInstanceManager;
|
|
9
8
|
import com.facebook.react.ReactPackage;
|
|
10
|
-
import com.facebook.react.bridge.JavaScriptModule;
|
|
11
9
|
import com.facebook.react.bridge.NativeModule;
|
|
12
10
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
13
|
-
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
14
|
-
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
|
|
15
11
|
import com.facebook.react.uimanager.ViewManager;
|
|
16
12
|
|
|
17
13
|
import org.json.JSONException;
|
|
@@ -20,7 +16,6 @@ import org.json.JSONObject;
|
|
|
20
16
|
import java.io.File;
|
|
21
17
|
import java.util.ArrayList;
|
|
22
18
|
import java.util.List;
|
|
23
|
-
import java.lang.reflect.Method;
|
|
24
19
|
|
|
25
20
|
public class CodePush implements ReactPackage {
|
|
26
21
|
|
|
@@ -39,34 +34,39 @@ public class CodePush implements ReactPackage {
|
|
|
39
34
|
private SettingsManager mSettingsManager;
|
|
40
35
|
|
|
41
36
|
// Config properties.
|
|
42
|
-
private String
|
|
37
|
+
private String mReleaseChannelPublicId;
|
|
43
38
|
private static String mServerUrl = "https://codepush.appzung.com/";
|
|
44
39
|
|
|
45
40
|
private Context mContext;
|
|
46
|
-
private final boolean mIsDebugMode;
|
|
41
|
+
private final boolean mIsDebugMode = BuildConfig.DEBUG;
|
|
47
42
|
|
|
48
43
|
private static String mPublicKey;
|
|
49
44
|
|
|
50
45
|
private static ReactInstanceHolder mReactInstanceHolder;
|
|
51
46
|
private static CodePush mCurrentInstance;
|
|
52
47
|
|
|
53
|
-
public CodePush(String deploymentKey, Context context) {
|
|
54
|
-
this(deploymentKey, context, false);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
48
|
public static String getServiceUrl() {
|
|
58
49
|
return mServerUrl;
|
|
59
50
|
}
|
|
60
51
|
|
|
61
|
-
public CodePush(
|
|
52
|
+
public CodePush(Context context) {
|
|
62
53
|
mContext = context.getApplicationContext();
|
|
63
54
|
|
|
55
|
+
String releaseChannelPublicIdFromStrings = getCustomPropertyFromStringsIfExist("ReleaseChannelPublicId");
|
|
56
|
+
if (releaseChannelPublicIdFromStrings == null) {
|
|
57
|
+
throw new CodePushUnknownException("Missing release channel public ID in strings resource");
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
mReleaseChannelPublicId = releaseChannelPublicIdFromStrings;
|
|
61
|
+
|
|
64
62
|
mUpdateManager = new CodePushUpdateManager(context.getFilesDir().getAbsolutePath());
|
|
65
63
|
mTelemetryManager = new CodePushTelemetryManager(mContext);
|
|
66
|
-
mDeploymentKey = deploymentKey;
|
|
67
|
-
mIsDebugMode = isDebugMode;
|
|
68
64
|
mSettingsManager = new SettingsManager(mContext);
|
|
69
65
|
|
|
66
|
+
if (mIsDebugMode) {
|
|
67
|
+
CodePushUtils.log("Running in DEBUG mode");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
70
|
if (sAppVersion == null) {
|
|
71
71
|
try {
|
|
72
72
|
PackageInfo pInfo = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0);
|
|
@@ -78,61 +78,28 @@ public class CodePush implements ReactPackage {
|
|
|
78
78
|
|
|
79
79
|
mCurrentInstance = this;
|
|
80
80
|
|
|
81
|
-
String publicKeyFromStrings = getCustomPropertyFromStringsIfExist("
|
|
82
|
-
if (publicKeyFromStrings != null)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (serverUrlFromStrings != null) mServerUrl = serverUrlFromStrings;
|
|
86
|
-
|
|
87
|
-
clearDebugCacheIfNeeded(null);
|
|
88
|
-
initializeUpdateAfterRestart();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public CodePush(String deploymentKey, Context context, boolean isDebugMode, String serverUrl) {
|
|
92
|
-
this(deploymentKey, context, isDebugMode);
|
|
93
|
-
mServerUrl = serverUrl;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
public CodePush(String deploymentKey, Context context, boolean isDebugMode, int publicKeyResourceDescriptor) {
|
|
97
|
-
this(deploymentKey, context, isDebugMode);
|
|
98
|
-
|
|
99
|
-
mPublicKey = getPublicKeyByResourceDescriptor(publicKeyResourceDescriptor);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
public CodePush(String deploymentKey, Context context, boolean isDebugMode, String serverUrl, Integer publicKeyResourceDescriptor) {
|
|
103
|
-
this(deploymentKey, context, isDebugMode);
|
|
104
|
-
|
|
105
|
-
if (publicKeyResourceDescriptor != null) {
|
|
106
|
-
mPublicKey = getPublicKeyByResourceDescriptor(publicKeyResourceDescriptor);
|
|
81
|
+
String publicKeyFromStrings = getCustomPropertyFromStringsIfExist("SigningPublicKey");
|
|
82
|
+
if (publicKeyFromStrings != null) {
|
|
83
|
+
CodePushUtils.log("Executing CodePush with a signing public key.");
|
|
84
|
+
mPublicKey = publicKeyFromStrings;
|
|
107
85
|
}
|
|
108
86
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
String publicKey;
|
|
114
|
-
try {
|
|
115
|
-
publicKey = mContext.getString(publicKeyResourceDescriptor);
|
|
116
|
-
} catch (Resources.NotFoundException e) {
|
|
117
|
-
throw new CodePushInvalidPublicKeyException(
|
|
118
|
-
"Unable to get public key, related resource descriptor " +
|
|
119
|
-
publicKeyResourceDescriptor +
|
|
120
|
-
" can not be found", e
|
|
121
|
-
);
|
|
87
|
+
String serverUrlFromStrings = getCustomPropertyFromStringsIfExist("ServerUrl");
|
|
88
|
+
if (serverUrlFromStrings != null) {
|
|
89
|
+
CodePushUtils.log("Executing CodePush with a custom server URL.");
|
|
90
|
+
mServerUrl = serverUrlFromStrings;
|
|
122
91
|
}
|
|
123
92
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
return publicKey;
|
|
93
|
+
clearDebugCacheIfNeeded(false);
|
|
94
|
+
initializeUpdateAfterRestart();
|
|
128
95
|
}
|
|
129
96
|
|
|
130
97
|
private String getCustomPropertyFromStringsIfExist(String propertyName) {
|
|
131
98
|
String property;
|
|
132
|
-
|
|
99
|
+
|
|
133
100
|
String packageName = mContext.getPackageName();
|
|
134
101
|
int resId = mContext.getResources().getIdentifier("CodePush" + propertyName, "string", packageName);
|
|
135
|
-
|
|
102
|
+
|
|
136
103
|
if (resId != 0) {
|
|
137
104
|
property = mContext.getString(resId);
|
|
138
105
|
|
|
@@ -140,37 +107,15 @@ public class CodePush implements ReactPackage {
|
|
|
140
107
|
return property;
|
|
141
108
|
} else {
|
|
142
109
|
CodePushUtils.log("Specified " + propertyName + " is empty");
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
private boolean isLiveReloadEnabled(ReactInstanceManager instanceManager) {
|
|
150
|
-
// Use instanceManager for checking if we use LiveReload mode. In this case we should not remove ReactNativeDevBundle.js file
|
|
151
|
-
// because we get error with trying to get this after reloading. Issue: https://github.com/microsoft/react-native-code-push/issues/1272
|
|
152
|
-
if (instanceManager != null) {
|
|
153
|
-
DevSupportManager devSupportManager = instanceManager.getDevSupportManager();
|
|
154
|
-
if (devSupportManager != null) {
|
|
155
|
-
DeveloperSettings devSettings = devSupportManager.getDevSettings();
|
|
156
|
-
Method[] methods = devSettings.getClass().getMethods();
|
|
157
|
-
for (Method m : methods) {
|
|
158
|
-
if (m.getName().equals("isReloadOnJSChangeEnabled")) {
|
|
159
|
-
try {
|
|
160
|
-
return (boolean) m.invoke(devSettings);
|
|
161
|
-
} catch (Exception x) {
|
|
162
|
-
return false;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
110
|
}
|
|
167
111
|
}
|
|
168
112
|
|
|
169
|
-
return
|
|
113
|
+
return null;
|
|
170
114
|
}
|
|
171
115
|
|
|
172
|
-
public void clearDebugCacheIfNeeded(
|
|
173
|
-
|
|
116
|
+
public void clearDebugCacheIfNeeded(boolean isLiveReloadEnabled) {
|
|
117
|
+
// Issue: https://github.com/microsoft/react-native-code-push/issues/1272
|
|
118
|
+
if (mIsDebugMode && mSettingsManager.isPendingUpdate(null) && !isLiveReloadEnabled) {
|
|
174
119
|
// This needs to be kept in sync with https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManager.java#L78
|
|
175
120
|
File cachedDevBundle = new File(mContext.getFilesDir(), "ReactNativeDevBundle.js");
|
|
176
121
|
if (cachedDevBundle.exists()) {
|
|
@@ -230,8 +175,8 @@ public class CodePush implements ReactPackage {
|
|
|
230
175
|
return mContext;
|
|
231
176
|
}
|
|
232
177
|
|
|
233
|
-
public String
|
|
234
|
-
return
|
|
178
|
+
public String getReleaseChannelPublicId() {
|
|
179
|
+
return mReleaseChannelPublicId;
|
|
235
180
|
}
|
|
236
181
|
|
|
237
182
|
public static String getJSBundleFile() {
|
|
@@ -393,8 +338,8 @@ public class CodePush implements ReactPackage {
|
|
|
393
338
|
return sTestConfigurationFlag;
|
|
394
339
|
}
|
|
395
340
|
|
|
396
|
-
public void
|
|
397
|
-
|
|
341
|
+
public void setReleaseChannelPublicId(String releaseChannelPublicId) {
|
|
342
|
+
mReleaseChannelPublicId = releaseChannelPublicId;
|
|
398
343
|
}
|
|
399
344
|
|
|
400
345
|
public static void setUsingTestConfiguration(boolean shouldUseTestConfiguration) {
|
|
@@ -421,19 +366,12 @@ public class CodePush implements ReactPackage {
|
|
|
421
366
|
@Override
|
|
422
367
|
public List<NativeModule> createNativeModules(ReactApplicationContext reactApplicationContext) {
|
|
423
368
|
CodePushNativeModule codePushModule = new CodePushNativeModule(reactApplicationContext, this, mUpdateManager, mTelemetryManager, mSettingsManager);
|
|
424
|
-
CodePushDialog dialogModule = new CodePushDialog(reactApplicationContext);
|
|
425
369
|
|
|
426
370
|
List<NativeModule> nativeModules = new ArrayList<>();
|
|
427
371
|
nativeModules.add(codePushModule);
|
|
428
|
-
nativeModules.add(dialogModule);
|
|
429
372
|
return nativeModules;
|
|
430
373
|
}
|
|
431
374
|
|
|
432
|
-
// Deprecated in RN v0.47.
|
|
433
|
-
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
|
434
|
-
return new ArrayList<>();
|
|
435
|
-
}
|
|
436
|
-
|
|
437
375
|
@Override
|
|
438
376
|
public List<ViewManager> createViewManagers(ReactApplicationContext reactApplicationContext) {
|
|
439
377
|
return new ArrayList<>();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
class CodePushInvalidPublicKeyException extends RuntimeException {
|
|
4
4
|
|
|
@@ -9,4 +9,4 @@ class CodePushInvalidPublicKeyException extends RuntimeException {
|
|
|
9
9
|
public CodePushInvalidPublicKeyException(String message) {
|
|
10
10
|
super(message);
|
|
11
11
|
}
|
|
12
|
-
}
|
|
12
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
import java.net.MalformedURLException;
|
|
4
4
|
|
|
@@ -9,4 +9,4 @@ public class CodePushMalformedDataException extends RuntimeException {
|
|
|
9
9
|
public CodePushMalformedDataException(String url, MalformedURLException cause) {
|
|
10
10
|
super("The package has an invalid downloadUrl: " + url, cause);
|
|
11
11
|
}
|
|
12
|
-
}
|
|
12
|
+
}
|
package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushNativeModule.java
RENAMED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
import android.app.Activity;
|
|
4
4
|
import android.content.SharedPreferences;
|
|
5
5
|
import android.os.AsyncTask;
|
|
6
6
|
import android.os.Handler;
|
|
7
7
|
import android.os.Looper;
|
|
8
|
-
import android.provider.Settings;
|
|
9
8
|
import android.view.View;
|
|
10
9
|
|
|
11
10
|
import com.facebook.react.ReactApplication;
|
|
@@ -20,9 +19,11 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
|
20
19
|
import com.facebook.react.bridge.ReactMethod;
|
|
21
20
|
import com.facebook.react.bridge.ReadableMap;
|
|
22
21
|
import com.facebook.react.bridge.WritableMap;
|
|
22
|
+
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
23
23
|
import com.facebook.react.modules.core.ChoreographerCompat;
|
|
24
24
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
25
25
|
import com.facebook.react.modules.core.ReactChoreographer;
|
|
26
|
+
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
|
|
26
27
|
|
|
27
28
|
import org.json.JSONArray;
|
|
28
29
|
import org.json.JSONException;
|
|
@@ -30,6 +31,7 @@ import org.json.JSONObject;
|
|
|
30
31
|
|
|
31
32
|
import java.io.IOException;
|
|
32
33
|
import java.lang.reflect.Field;
|
|
34
|
+
import java.lang.reflect.Method;
|
|
33
35
|
import java.util.ArrayList;
|
|
34
36
|
import java.util.Date;
|
|
35
37
|
import java.util.HashMap;
|
|
@@ -132,10 +134,17 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
|
|
|
132
134
|
private void loadBundle() {
|
|
133
135
|
clearLifecycleEventListener();
|
|
134
136
|
try {
|
|
135
|
-
|
|
137
|
+
DevSupportManager devSupportManager = null;
|
|
138
|
+
ReactInstanceManager reactInstanceManager = resolveInstanceManager();
|
|
139
|
+
if (reactInstanceManager != null) {
|
|
140
|
+
devSupportManager = reactInstanceManager.getDevSupportManager();
|
|
141
|
+
}
|
|
142
|
+
boolean isLiveReloadEnabled = isLiveReloadEnabled(devSupportManager);
|
|
143
|
+
|
|
144
|
+
mCodePush.clearDebugCacheIfNeeded(isLiveReloadEnabled);
|
|
136
145
|
} catch(Exception e) {
|
|
137
146
|
// If we got error in out reflection we should clear debug cache anyway.
|
|
138
|
-
mCodePush.clearDebugCacheIfNeeded(
|
|
147
|
+
mCodePush.clearDebugCacheIfNeeded(false);
|
|
139
148
|
}
|
|
140
149
|
|
|
141
150
|
try {
|
|
@@ -156,7 +165,7 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
|
|
|
156
165
|
@Override
|
|
157
166
|
public void run() {
|
|
158
167
|
try {
|
|
159
|
-
// We don't need to resetReactRootViews anymore
|
|
168
|
+
// We don't need to resetReactRootViews anymore
|
|
160
169
|
// due the issue https://github.com/facebook/react-native/issues/14533
|
|
161
170
|
// has been fixed in RN 0.46.0
|
|
162
171
|
//resetReactRootViews(instanceManager);
|
|
@@ -179,6 +188,26 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
|
|
|
179
188
|
}
|
|
180
189
|
}
|
|
181
190
|
|
|
191
|
+
private boolean isLiveReloadEnabled(DevSupportManager devSupportManager) {
|
|
192
|
+
if (devSupportManager == null) {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
DeveloperSettings devSettings = devSupportManager.getDevSettings();
|
|
197
|
+
Method[] methods = devSettings.getClass().getMethods();
|
|
198
|
+
for (Method m : methods) {
|
|
199
|
+
if (m.getName().equals("isReloadOnJSChangeEnabled")) {
|
|
200
|
+
try {
|
|
201
|
+
return (boolean) m.invoke(devSettings);
|
|
202
|
+
} catch (Exception x) {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
|
|
182
211
|
// This workaround has been implemented in order to fix https://github.com/facebook/react-native/issues/14533
|
|
183
212
|
// resetReactRootViews allows to call recreateReactContextInBackground without any exceptions
|
|
184
213
|
// This fix also relates to https://github.com/microsoft/react-native-code-push/issues/878
|
|
@@ -365,7 +394,7 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
|
|
|
365
394
|
WritableMap configMap = Arguments.createMap();
|
|
366
395
|
configMap.putString("appVersion", mCodePush.getAppVersion());
|
|
367
396
|
configMap.putString("clientUniqueId", mClientUniqueId);
|
|
368
|
-
configMap.putString("
|
|
397
|
+
configMap.putString("releaseChannelPublicId", mCodePush.getReleaseChannelPublicId());
|
|
369
398
|
configMap.putString("serverUrl", mCodePush.getServerUrl());
|
|
370
399
|
|
|
371
400
|
// The binary hash may be null in debug builds
|
|
@@ -492,7 +521,7 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
|
|
|
492
521
|
return null;
|
|
493
522
|
}
|
|
494
523
|
}
|
|
495
|
-
|
|
524
|
+
|
|
496
525
|
promise.resolve("");
|
|
497
526
|
} catch(CodePushUnknownException e) {
|
|
498
527
|
CodePushUtils.log(e);
|
|
@@ -691,7 +720,7 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
|
|
|
691
720
|
|
|
692
721
|
/**
|
|
693
722
|
* This method clears CodePush's downloaded updates.
|
|
694
|
-
* It is needed to switch to a different
|
|
723
|
+
* It is needed to switch to a different release channel if the current release channel is more recent.
|
|
695
724
|
* Note: we don’t recommend to use this method in scenarios other than that (CodePush will call
|
|
696
725
|
* this method automatically when needed in other cases) as it could lead to unpredictable
|
|
697
726
|
* behavior.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
public final class CodePushNotInitializedException extends RuntimeException {
|
|
4
4
|
|
|
@@ -9,4 +9,4 @@ public final class CodePushNotInitializedException extends RuntimeException {
|
|
|
9
9
|
public CodePushNotInitializedException(String message) {
|
|
10
10
|
super(message);
|
|
11
11
|
}
|
|
12
|
-
}
|
|
12
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.content.SharedPreferences;
|
|
@@ -14,12 +14,12 @@ public class CodePushTelemetryManager {
|
|
|
14
14
|
private SharedPreferences mSettings;
|
|
15
15
|
private final String APP_VERSION_KEY = "appVersion";
|
|
16
16
|
private final String DEPLOYMENT_FAILED_STATUS = "DeploymentFailed";
|
|
17
|
-
private final String
|
|
17
|
+
private final String RELEASE_CHANNEL_PUBLIC_ID_KEY = "releaseChannelPublicId";
|
|
18
18
|
private final String DEPLOYMENT_SUCCEEDED_STATUS = "DeploymentSucceeded";
|
|
19
19
|
private final String LABEL_KEY = "label";
|
|
20
20
|
private final String LAST_DEPLOYMENT_REPORT_KEY = "CODE_PUSH_LAST_DEPLOYMENT_REPORT";
|
|
21
21
|
private final String PACKAGE_KEY = "package";
|
|
22
|
-
private final String
|
|
22
|
+
private final String PREVIOUS_RELEASE_CHANNEL_PUBLIC_ID_KEY = "previousReleaseChannelPublicId";
|
|
23
23
|
private final String PREVIOUS_LABEL_OR_APP_VERSION_KEY = "previousLabelOrAppVersion";
|
|
24
24
|
private final String RETRY_DEPLOYMENT_REPORT_KEY = "CODE_PUSH_RETRY_DEPLOYMENT_REPORT";
|
|
25
25
|
private final String STATUS_KEY = "status";
|
|
@@ -39,10 +39,10 @@ public class CodePushTelemetryManager {
|
|
|
39
39
|
this.clearRetryStatusReport();
|
|
40
40
|
reportMap = Arguments.createMap();
|
|
41
41
|
if (this.isStatusReportIdentifierCodePushLabel(previousStatusReportIdentifier)) {
|
|
42
|
-
String
|
|
42
|
+
String previousReleaseChannelPublicId = this.getReleaseChannelPublicIdFromStatusReportIdentifier(previousStatusReportIdentifier);
|
|
43
43
|
String previousLabel = this.getVersionLabelFromStatusReportIdentifier(previousStatusReportIdentifier);
|
|
44
44
|
reportMap.putString(APP_VERSION_KEY, appVersion);
|
|
45
|
-
reportMap.putString(
|
|
45
|
+
reportMap.putString(PREVIOUS_RELEASE_CHANNEL_PUBLIC_ID_KEY, previousReleaseChannelPublicId);
|
|
46
46
|
reportMap.putString(PREVIOUS_LABEL_OR_APP_VERSION_KEY, previousLabel);
|
|
47
47
|
} else {
|
|
48
48
|
// Previous status report was with a binary app version.
|
|
@@ -90,11 +90,11 @@ public class CodePushTelemetryManager {
|
|
|
90
90
|
this.clearRetryStatusReport();
|
|
91
91
|
reportMap = Arguments.createMap();
|
|
92
92
|
if (this.isStatusReportIdentifierCodePushLabel(previousStatusReportIdentifier)) {
|
|
93
|
-
String
|
|
93
|
+
String previousReleaseChannelPublicId = this.getReleaseChannelPublicIdFromStatusReportIdentifier(previousStatusReportIdentifier);
|
|
94
94
|
String previousLabel = this.getVersionLabelFromStatusReportIdentifier(previousStatusReportIdentifier);
|
|
95
95
|
reportMap.putMap(PACKAGE_KEY, currentPackage);
|
|
96
96
|
reportMap.putString(STATUS_KEY, DEPLOYMENT_SUCCEEDED_STATUS);
|
|
97
|
-
reportMap.putString(
|
|
97
|
+
reportMap.putString(PREVIOUS_RELEASE_CHANNEL_PUBLIC_ID_KEY, previousReleaseChannelPublicId);
|
|
98
98
|
reportMap.putString(PREVIOUS_LABEL_OR_APP_VERSION_KEY, previousLabel);
|
|
99
99
|
} else {
|
|
100
100
|
// Previous status report was with a binary app version.
|
|
@@ -113,7 +113,7 @@ public class CodePushTelemetryManager {
|
|
|
113
113
|
if (statusReport.hasKey(STATUS_KEY) && DEPLOYMENT_FAILED_STATUS.equals(statusReport.getString(STATUS_KEY))) {
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
if (statusReport.hasKey(APP_VERSION_KEY)) {
|
|
118
118
|
saveStatusReportedForIdentifier(statusReport.getString(APP_VERSION_KEY));
|
|
119
119
|
} else if (statusReport.hasKey(PACKAGE_KEY)) {
|
|
@@ -131,7 +131,7 @@ public class CodePushTelemetryManager {
|
|
|
131
131
|
mSettings.edit().remove(RETRY_DEPLOYMENT_REPORT_KEY).commit();
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
private String
|
|
134
|
+
private String getReleaseChannelPublicIdFromStatusReportIdentifier(String statusReportIdentifier) {
|
|
135
135
|
String[] parsedIdentifier = statusReportIdentifier.split(":");
|
|
136
136
|
if (parsedIdentifier.length > 0) {
|
|
137
137
|
return parsedIdentifier[0];
|
|
@@ -141,12 +141,12 @@ public class CodePushTelemetryManager {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
private String getPackageStatusReportIdentifier(ReadableMap updatePackage) {
|
|
144
|
-
// Because
|
|
145
|
-
// combination of the
|
|
146
|
-
String
|
|
144
|
+
// Because release channels can be dynamically switched, we use a
|
|
145
|
+
// combination of the releaseChannelPublicId and label as the packageIdentifier.
|
|
146
|
+
String releaseChannelPublicId = CodePushUtils.tryGetString(updatePackage, RELEASE_CHANNEL_PUBLIC_ID_KEY);
|
|
147
147
|
String label = CodePushUtils.tryGetString(updatePackage, LABEL_KEY);
|
|
148
|
-
if (
|
|
149
|
-
return
|
|
148
|
+
if (releaseChannelPublicId != null && label != null) {
|
|
149
|
+
return releaseChannelPublicId + ":" + label;
|
|
150
150
|
} else {
|
|
151
151
|
return null;
|
|
152
152
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
class CodePushUnknownException extends RuntimeException {
|
|
4
4
|
|
|
@@ -9,4 +9,4 @@ class CodePushUnknownException extends RuntimeException {
|
|
|
9
9
|
public CodePushUnknownException(String message) {
|
|
10
10
|
super(message);
|
|
11
11
|
}
|
|
12
|
-
}
|
|
12
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.appzung.codepush.react;
|
|
2
2
|
|
|
3
3
|
import android.os.Build;
|
|
4
4
|
|
|
@@ -278,8 +278,8 @@ public class CodePushUpdateManager {
|
|
|
278
278
|
throw new CodePushInvalidUpdateException(
|
|
279
279
|
"Error! Public key was provided but there is no JWT signature within app bundle to verify. " +
|
|
280
280
|
"Possible reasons, why that might happen: \n" +
|
|
281
|
-
"1. You
|
|
282
|
-
"2. You
|
|
281
|
+
"1. You released a CodePush bundle update using version of CodePush CLI that does not support code signing.\n" +
|
|
282
|
+
"2. You released a CodePush bundle update without providing --privateKeyPath option."
|
|
283
283
|
);
|
|
284
284
|
}
|
|
285
285
|
} else {
|