@appzung/react-native-code-push 8.3.2 → 10.0.0-rc1
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.js +22 -19
- package/CodePush.podspec +3 -3
- package/LICENSE.md +1 -1
- package/README.md +159 -296
- package/android/app/.gradle/config.properties +2 -0
- package/android/app/build.gradle +2 -0
- package/android/app/local.properties +8 -0
- package/android/app/src/main/AndroidManifest.xml +1 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java +27 -21
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +5 -5
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushConstants.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInstallMode.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidUpdateException.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushMalformedDataException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java +5 -5
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNotInitializedException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushTelemetryManager.java +14 -14
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUnknownException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateState.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java +16 -9
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUtils.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/DownloadProgress.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/DownloadProgressCallback.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/FileUtils.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/SettingsManager.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/TLSSocketFactory.java +1 -1
- package/android/build.gradle +3 -0
- package/android/codepush.gradle +3 -3
- package/docs/advanced-usage.md +56 -0
- package/docs/api-android.md +12 -75
- package/docs/api-ios.md +5 -17
- package/docs/api-js.md +18 -55
- package/docs/setup-android.md +15 -397
- package/docs/setup-ios.md +24 -198
- package/docs/setup-windows.md +7 -74
- package/ios/CodePush/CodePush.h +4 -4
- package/ios/CodePush/CodePush.m +10 -9
- 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 +24 -470
- package/ios/PrivacyInfo.xcprivacy +31 -0
- package/package.json +27 -24
- package/react-native.config.js +1 -1
- package/scripts/generateBundledResourcesHash.js +1 -1
- package/scripts/getFilesInFolder.js +1 -1
- package/scripts/recordFilesBeforeBundleCommand.js +1 -1
- package/typings/react-native-code-push.d.ts +22 -22
- 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/SECURITY.md +0 -41
- 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/Common.h +0 -81
- package/ios/CodePush/SSZipArchive/README.md +0 -1
- package/ios/CodePush/SSZipArchive/SSZipArchive.h +0 -76
- package/ios/CodePush/SSZipArchive/SSZipArchive.m +0 -691
- package/ios/CodePush/SSZipArchive/aes/aes.h +0 -198
- package/ios/CodePush/SSZipArchive/aes/aes_via_ace.h +0 -541
- package/ios/CodePush/SSZipArchive/aes/aescrypt.c +0 -294
- package/ios/CodePush/SSZipArchive/aes/aeskey.c +0 -548
- package/ios/CodePush/SSZipArchive/aes/aesopt.h +0 -739
- package/ios/CodePush/SSZipArchive/aes/aestab.c +0 -391
- package/ios/CodePush/SSZipArchive/aes/aestab.h +0 -173
- package/ios/CodePush/SSZipArchive/aes/brg_endian.h +0 -126
- package/ios/CodePush/SSZipArchive/aes/brg_types.h +0 -219
- package/ios/CodePush/SSZipArchive/aes/entropy.c +0 -54
- package/ios/CodePush/SSZipArchive/aes/entropy.h +0 -16
- package/ios/CodePush/SSZipArchive/aes/fileenc.c +0 -144
- package/ios/CodePush/SSZipArchive/aes/fileenc.h +0 -121
- package/ios/CodePush/SSZipArchive/aes/hmac.c +0 -145
- package/ios/CodePush/SSZipArchive/aes/hmac.h +0 -103
- package/ios/CodePush/SSZipArchive/aes/prng.c +0 -155
- package/ios/CodePush/SSZipArchive/aes/prng.h +0 -82
- package/ios/CodePush/SSZipArchive/aes/pwd2key.c +0 -103
- package/ios/CodePush/SSZipArchive/aes/pwd2key.h +0 -57
- package/ios/CodePush/SSZipArchive/aes/sha1.c +0 -258
- package/ios/CodePush/SSZipArchive/aes/sha1.h +0 -73
- package/ios/CodePush/SSZipArchive/minizip/crypt.h +0 -130
- package/ios/CodePush/SSZipArchive/minizip/ioapi.c +0 -369
- package/ios/CodePush/SSZipArchive/minizip/ioapi.h +0 -175
- package/ios/CodePush/SSZipArchive/minizip/mztools.c +0 -284
- package/ios/CodePush/SSZipArchive/minizip/mztools.h +0 -31
- package/ios/CodePush/SSZipArchive/minizip/unzip.c +0 -1839
- package/ios/CodePush/SSZipArchive/minizip/unzip.h +0 -248
- package/ios/CodePush/SSZipArchive/minizip/zip.c +0 -1910
- package/ios/CodePush/SSZipArchive/minizip/zip.h +0 -202
- 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/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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>NSPrivacyTracking</key>
|
|
6
|
+
<false />
|
|
7
|
+
<key>NSPrivacyCollectedDataTypes</key>
|
|
8
|
+
<array />
|
|
9
|
+
<key>NSPrivacyTrackingDomains</key>
|
|
10
|
+
<array />
|
|
11
|
+
<key>NSPrivacyAccessedAPITypes</key>
|
|
12
|
+
<array>
|
|
13
|
+
<dict>
|
|
14
|
+
<key>NSPrivacyAccessedAPIType</key>
|
|
15
|
+
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
|
|
16
|
+
<key>NSPrivacyAccessedAPITypeReasons</key>
|
|
17
|
+
<array>
|
|
18
|
+
<string>0A2A.1</string>
|
|
19
|
+
</array>
|
|
20
|
+
</dict>
|
|
21
|
+
<dict>
|
|
22
|
+
<key>NSPrivacyAccessedAPIType</key>
|
|
23
|
+
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
|
|
24
|
+
<key>NSPrivacyAccessedAPITypeReasons</key>
|
|
25
|
+
<array>
|
|
26
|
+
<string>CA92.1</string>
|
|
27
|
+
</array>
|
|
28
|
+
</dict>
|
|
29
|
+
</array>
|
|
30
|
+
</dict>
|
|
31
|
+
</plist>
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appzung/react-native-code-push",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0-rc1",
|
|
4
4
|
"description": "React Native plugin for the CodePush service",
|
|
5
|
-
"main": "CodePush.js",
|
|
6
|
-
"typings": "typings/react-native-code-push.d.ts",
|
|
7
5
|
"author": "Louis Lagrange <lagrange.louis@gmail.com> (https://github.com/Minishlink)",
|
|
8
6
|
"license": "MIT",
|
|
7
|
+
"homepage": "https://appzung.com",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@appzung.com"
|
|
10
|
+
},
|
|
11
|
+
"main": "CodePush.js",
|
|
12
|
+
"typings": "typings/react-native-code-push.d.ts",
|
|
9
13
|
"scripts": {
|
|
10
14
|
"clean": "shx rm -rf bin",
|
|
11
15
|
"setup": "npm install --quiet --no-progress",
|
|
@@ -24,14 +28,13 @@
|
|
|
24
28
|
"test:debugger:ios": "mocha --recursive --inspect-brk=0.0.0.0 bin/test --ios",
|
|
25
29
|
"tslint": "tslint -c tslint.json test/**/*.ts"
|
|
26
30
|
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/appzung/react-native-code-push"
|
|
34
|
+
},
|
|
27
35
|
"dependencies": {
|
|
28
|
-
"code-push": "^4.2.
|
|
29
|
-
"
|
|
30
|
-
"hoist-non-react-statics": "^3.3.2",
|
|
31
|
-
"inquirer": "^8.1.5",
|
|
32
|
-
"plist": "^3.0.4",
|
|
33
|
-
"semver": "^7.3.5",
|
|
34
|
-
"xcode": "3.0.1"
|
|
36
|
+
"code-push": "^4.2.3",
|
|
37
|
+
"hoist-non-react-statics": "^3.3.2"
|
|
35
38
|
},
|
|
36
39
|
"devDependencies": {
|
|
37
40
|
"@types/assert": "^1.5.2",
|
|
@@ -53,18 +56,18 @@
|
|
|
53
56
|
"tslint": "^6.1.3",
|
|
54
57
|
"typescript": "^4.4.3"
|
|
55
58
|
},
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
59
|
+
"keywords": [
|
|
60
|
+
"appzung",
|
|
61
|
+
"codepush",
|
|
62
|
+
"react-native",
|
|
63
|
+
"code",
|
|
64
|
+
"push",
|
|
65
|
+
"ota",
|
|
66
|
+
"live-updates",
|
|
67
|
+
"hot-updates",
|
|
68
|
+
"expo-updates",
|
|
69
|
+
"expo-ota",
|
|
70
|
+
"appcenter"
|
|
71
|
+
],
|
|
72
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
70
73
|
}
|
package/react-native.config.js
CHANGED
|
@@ -3,7 +3,7 @@ module.exports = {
|
|
|
3
3
|
platforms: {
|
|
4
4
|
android: {
|
|
5
5
|
packageInstance:
|
|
6
|
-
"new CodePush(getResources().getString(R.string.
|
|
6
|
+
"new CodePush(getResources().getString(R.string.CodePushReleaseChannelPublicId), getApplicationContext(), BuildConfig.DEBUG)"
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -40,9 +40,9 @@ export interface Package {
|
|
|
40
40
|
appVersion: string;
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
* The
|
|
43
|
+
* The release channel public ID that was used to originally download this update.
|
|
44
44
|
*/
|
|
45
|
-
|
|
45
|
+
releaseChannelPublicId: string;
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* The description of the update. This is the same value that you specified in the CLI when you released the update.
|
|
@@ -71,7 +71,7 @@ export interface Package {
|
|
|
71
71
|
isPending: boolean;
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
|
-
* The internal label automatically given to the update by the CodePush server. This value uniquely identifies the update within its
|
|
74
|
+
* The internal label automatically given to the update by the CodePush server. This value uniquely identifies the update within its release channel.
|
|
75
75
|
*/
|
|
76
76
|
label: string;
|
|
77
77
|
|
|
@@ -102,11 +102,11 @@ export interface RemotePackage extends Package {
|
|
|
102
102
|
|
|
103
103
|
export interface SyncOptions {
|
|
104
104
|
/**
|
|
105
|
-
* Specifies the
|
|
106
|
-
* file (iOS) and
|
|
107
|
-
* dynamically use a different
|
|
105
|
+
* Specifies the release channel you want to query for an update against. By default, this value is derived from the Info.plist
|
|
106
|
+
* file (iOS) and strings resources (Android), but this option allows you to override it from the script-side if you need to
|
|
107
|
+
* dynamically use a different release channel for a specific call to sync.
|
|
108
108
|
*/
|
|
109
|
-
|
|
109
|
+
releaseChannelPublicId?: string;
|
|
110
110
|
|
|
111
111
|
/**
|
|
112
112
|
* Specifies when you would like to install optional updates (i.e. those that aren't marked as mandatory).
|
|
@@ -122,8 +122,8 @@ export interface SyncOptions {
|
|
|
122
122
|
|
|
123
123
|
/**
|
|
124
124
|
* Specifies the minimum number of seconds that the app needs to have been in the background before restarting the app. This property
|
|
125
|
-
* only applies to updates which are installed using `InstallMode.ON_NEXT_RESUME` or `InstallMode.ON_NEXT_SUSPEND`, and can be useful
|
|
126
|
-
* for getting your update in front of end users sooner, without being too obtrusive. Defaults to `0`, which has the effect of applying
|
|
125
|
+
* only applies to updates which are installed using `InstallMode.ON_NEXT_RESUME` or `InstallMode.ON_NEXT_SUSPEND`, and can be useful
|
|
126
|
+
* for getting your update in front of end users sooner, without being too obtrusive. Defaults to `0`, which has the effect of applying
|
|
127
127
|
* the update immediately after a resume or unless the app suspension is long enough to not matter, regardless how long it was in the background.
|
|
128
128
|
*/
|
|
129
129
|
minimumBackgroundDuration?: number;
|
|
@@ -222,9 +222,9 @@ export interface StatusReport {
|
|
|
222
222
|
package?: Package;
|
|
223
223
|
|
|
224
224
|
/**
|
|
225
|
-
*
|
|
225
|
+
* Release channel used when deploying the previous package.
|
|
226
226
|
*/
|
|
227
|
-
|
|
227
|
+
previousReleaseChannelPublicId?: string;
|
|
228
228
|
|
|
229
229
|
/**
|
|
230
230
|
* The label (v#) of the package that was upgraded from.
|
|
@@ -254,13 +254,13 @@ declare namespace CodePush {
|
|
|
254
254
|
var DEFAULT_UPDATE_DIALOG: UpdateDialog;
|
|
255
255
|
|
|
256
256
|
/**
|
|
257
|
-
* Asks the CodePush service whether the configured app
|
|
257
|
+
* Asks the CodePush service whether the configured app release channel has an update available.
|
|
258
|
+
*
|
|
259
|
+
* @param releaseChannelPublicId The release channel public ID to use to query the CodePush server for an update.
|
|
258
260
|
*
|
|
259
|
-
* @param deploymentKey The deployment key to use to query the CodePush server for an update.
|
|
260
|
-
*
|
|
261
261
|
* @param handleBinaryVersionMismatchCallback An optional callback for handling target binary version mismatch
|
|
262
262
|
*/
|
|
263
|
-
function checkForUpdate(
|
|
263
|
+
function checkForUpdate(releaseChannelPublicId?: string, handleBinaryVersionMismatchCallback?: HandleBinaryVersionMismatchCallback): Promise<RemotePackage | null>;
|
|
264
264
|
|
|
265
265
|
/**
|
|
266
266
|
* Retrieves the metadata for an installed update (e.g. description, mandatory).
|
|
@@ -286,7 +286,7 @@ declare namespace CodePush {
|
|
|
286
286
|
|
|
287
287
|
/**
|
|
288
288
|
* Clear all downloaded CodePush updates.
|
|
289
|
-
* This is useful when switching to a different
|
|
289
|
+
* This is useful when switching to a different release channel which may have an older release than the current package.
|
|
290
290
|
* Note: we don’t recommend to use this method in scenarios other than that (CodePush will call
|
|
291
291
|
* this method automatically when needed in other cases) as it could lead to unpredictable behavior.
|
|
292
292
|
*/
|
|
@@ -326,7 +326,7 @@ declare namespace CodePush {
|
|
|
326
326
|
/**
|
|
327
327
|
* Indicates that you want to install the update, but don't want to restart the app until the next time
|
|
328
328
|
* the end user resumes it from the background. This way, you don't disrupt their current session,
|
|
329
|
-
* but you can get the update in front of them sooner then having to wait for the next natural restart.
|
|
329
|
+
* but you can get the update in front of them sooner then having to wait for the next natural restart.
|
|
330
330
|
* This value is appropriate for silent installs that can be applied on resume in a non-invasive way.
|
|
331
331
|
*/
|
|
332
332
|
ON_NEXT_RESUME,
|
|
@@ -347,30 +347,30 @@ declare namespace CodePush {
|
|
|
347
347
|
* The app is up-to-date with the CodePush server.
|
|
348
348
|
*/
|
|
349
349
|
UP_TO_DATE,
|
|
350
|
-
|
|
350
|
+
|
|
351
351
|
/**
|
|
352
352
|
* An available update has been installed and will be run either immediately after the
|
|
353
353
|
* syncStatusChangedCallback function returns or the next time the app resumes/restarts,
|
|
354
354
|
* depending on the InstallMode specified in SyncOptions
|
|
355
355
|
*/
|
|
356
356
|
UPDATE_INSTALLED,
|
|
357
|
-
|
|
357
|
+
|
|
358
358
|
/**
|
|
359
359
|
* The app had an optional update which the end user chose to ignore.
|
|
360
360
|
* (This is only applicable when the updateDialog is used)
|
|
361
361
|
*/
|
|
362
362
|
UPDATE_IGNORED,
|
|
363
|
-
|
|
363
|
+
|
|
364
364
|
/**
|
|
365
365
|
* The sync operation encountered an unknown error.
|
|
366
366
|
*/
|
|
367
367
|
UNKNOWN_ERROR,
|
|
368
|
-
|
|
368
|
+
|
|
369
369
|
/**
|
|
370
370
|
* There is an ongoing sync operation running which prevents the current call from being executed.
|
|
371
371
|
*/
|
|
372
372
|
SYNC_IN_PROGRESS,
|
|
373
|
-
|
|
373
|
+
|
|
374
374
|
/**
|
|
375
375
|
* The CodePush server is being queried for an update.
|
|
376
376
|
*/
|
|
@@ -36,7 +36,7 @@ namespace winrt::Microsoft::CodePush::ReactNative::implementation
|
|
|
36
36
|
{
|
|
37
37
|
std::optional<hstring> appVersion;
|
|
38
38
|
std::optional<hstring> buildVersion;
|
|
39
|
-
std::optional<hstring>
|
|
39
|
+
std::optional<hstring> releaseChannelPublicId;
|
|
40
40
|
std::optional<hstring> publicKey;
|
|
41
41
|
std::optional<hstring> serverUrl;
|
|
42
42
|
|
|
@@ -44,7 +44,7 @@ namespace winrt::Microsoft::CodePush::ReactNative::implementation
|
|
|
44
44
|
{
|
|
45
45
|
appVersion = configMap.TryLookup(AppVersionConfigKey);
|
|
46
46
|
buildVersion = configMap.TryLookup(BuildVersionConfigKey);
|
|
47
|
-
|
|
47
|
+
releaseChannelPublicId = configMap.TryLookup(ReleaseChannelPublicIdConfigKey);
|
|
48
48
|
publicKey = configMap.TryLookup(PublicKeyKey);
|
|
49
49
|
serverUrl = configMap.TryLookup(ServerURLConfigKey);
|
|
50
50
|
}
|
|
@@ -73,7 +73,7 @@ namespace winrt::Microsoft::CodePush::ReactNative::implementation
|
|
|
73
73
|
|
|
74
74
|
addToConfiguration(AppVersionConfigKey, appVersion);
|
|
75
75
|
addToConfiguration(BuildVersionConfigKey, buildVersion);
|
|
76
|
-
addToConfiguration(
|
|
76
|
+
addToConfiguration(ReleaseChannelPublicIdConfigKey, releaseChannelPublicId);
|
|
77
77
|
addToConfiguration(PublicKeyKey, publicKey);
|
|
78
78
|
addToConfiguration(ServerURLConfigKey, serverUrl);
|
|
79
79
|
|
|
@@ -29,8 +29,8 @@ namespace winrt::Microsoft::CodePush::ReactNative::implementation
|
|
|
29
29
|
|
|
30
30
|
Windows::Data::Json::JsonObject GetConfiguration();
|
|
31
31
|
|
|
32
|
-
hstring
|
|
33
|
-
void
|
|
32
|
+
hstring GetReleaseChannelPublicId() { return QueryConfig(ReleaseChannelPublicIdConfigKey); }
|
|
33
|
+
void SetReleaseChannelPublicId(std::wstring_view releaseChannelPublicId) { m_configuration.Insert(ReleaseChannelPublicIdConfigKey, releaseChannelPublicId); }
|
|
34
34
|
|
|
35
35
|
hstring GetServerUrl() { return QueryConfig(ServerURLConfigKey); }
|
|
36
36
|
void SetServerUrl(std::wstring_view serverUrl) { m_configuration.Insert(ServerURLConfigKey, serverUrl); }
|
|
@@ -42,7 +42,7 @@ namespace winrt::Microsoft::CodePush::ReactNative::implementation
|
|
|
42
42
|
static constexpr std::wstring_view AppVersionConfigKey{ L"appVersion" };
|
|
43
43
|
static constexpr std::wstring_view BuildVersionConfigKey{ L"buildVersion" };
|
|
44
44
|
static constexpr std::wstring_view ClientUniqueIDConfigKey{ L"clientUniqueId" };
|
|
45
|
-
static constexpr std::wstring_view
|
|
45
|
+
static constexpr std::wstring_view ReleaseChannelPublicIdConfigKey{ L"releaseChannelPublicId" };
|
|
46
46
|
static constexpr std::wstring_view ServerURLConfigKey{ L"serverUrl" };
|
|
47
47
|
static constexpr std::wstring_view PublicKeyKey{ L"publicKey" };
|
|
48
48
|
|
|
@@ -127,22 +127,22 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
127
127
|
return ApplicationData::Current().LocalSettings();
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
void CodePushNativeModule::OverrideAppVersion(std::wstring_view appVersion)
|
|
130
|
+
void CodePushNativeModule::OverrideAppVersion(std::wstring_view appVersion)
|
|
131
131
|
{
|
|
132
132
|
CodePushConfig::Current().SetAppVersion(appVersion);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
void CodePushNativeModule::
|
|
135
|
+
void CodePushNativeModule::SetReleaseChannelPublicId(std::wstring_view releaseChannelPublicId)
|
|
136
136
|
{
|
|
137
|
-
CodePushConfig::Current().
|
|
137
|
+
CodePushConfig::Current().SetReleaseChannelPublicId(releaseChannelPublicId);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
/*
|
|
141
141
|
* This method checks to see whether a specific package hash
|
|
142
142
|
* has previously failed installation.
|
|
143
143
|
*/
|
|
144
|
-
bool CodePushNativeModule::IsFailedHash(std::wstring_view packageHash)
|
|
145
|
-
{
|
|
144
|
+
bool CodePushNativeModule::IsFailedHash(std::wstring_view packageHash)
|
|
145
|
+
{
|
|
146
146
|
auto localSettings{ GetLocalSettings() };
|
|
147
147
|
auto failedUpdatesData{ localSettings.Values().TryLookup(FailedUpdatesKey) };
|
|
148
148
|
if (failedUpdatesData == nullptr)
|
|
@@ -186,7 +186,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
186
186
|
* This method is used to get the count of rollback for the package
|
|
187
187
|
* using the latest rollback information.
|
|
188
188
|
*/
|
|
189
|
-
int CodePushNativeModule::GetRollbackCountForPackage(std::wstring_view packageHash, const JsonObject& latestRollbackInfo)
|
|
189
|
+
int CodePushNativeModule::GetRollbackCountForPackage(std::wstring_view packageHash, const JsonObject& latestRollbackInfo)
|
|
190
190
|
{
|
|
191
191
|
auto oldPackageHash{ latestRollbackInfo.GetNamedString(LatestRollbackPackageHashKey, L"null") };
|
|
192
192
|
if (packageHash == oldPackageHash)
|
|
@@ -194,7 +194,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
194
194
|
auto oldCount{ latestRollbackInfo.GetNamedNumber(LatestRollbackCountKey, 0) };
|
|
195
195
|
return static_cast<int>(oldCount);
|
|
196
196
|
}
|
|
197
|
-
return 0;
|
|
197
|
+
return 0;
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
/*
|
|
@@ -203,7 +203,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
203
203
|
* been applied yet via an app restart.
|
|
204
204
|
*/
|
|
205
205
|
/*static*/ bool CodePushNativeModule::IsPendingUpdate(std::wstring_view packageHash)
|
|
206
|
-
{
|
|
206
|
+
{
|
|
207
207
|
auto localSettings{ GetLocalSettings() };
|
|
208
208
|
auto pendingUpdateData{ localSettings.Values().TryLookup(PendingUpdateKey) };
|
|
209
209
|
if (pendingUpdateData != nullptr)
|
|
@@ -211,7 +211,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
211
211
|
auto pendingUpdateString{ unbox_value<hstring>(pendingUpdateData) };
|
|
212
212
|
JsonObject pendingUpdate;
|
|
213
213
|
auto success{ JsonObject::TryParse(pendingUpdateString, pendingUpdate) };
|
|
214
|
-
|
|
214
|
+
|
|
215
215
|
// If there is a pending update whose "state" isn't loading, then we consider it "pending".
|
|
216
216
|
// Additionally, if a specific hash was provided, we ensure it matches that of the pending update.
|
|
217
217
|
auto updateIsPending{ success &&
|
|
@@ -478,9 +478,9 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
478
478
|
* This is the native side of the CodePush.getConfiguration method. It isn't
|
|
479
479
|
* currently exposed via the "react-native-code-push" module, and is used
|
|
480
480
|
* internally only by the CodePush.checkForUpdate method in order to get the
|
|
481
|
-
* app version, as well as the
|
|
481
|
+
* app version, as well as the release channel that was configured in App.cpp.
|
|
482
482
|
*/
|
|
483
|
-
fire_and_forget CodePushNativeModule::GetConfiguration(ReactPromise<IJsonValue> promise) noexcept
|
|
483
|
+
fire_and_forget CodePushNativeModule::GetConfiguration(ReactPromise<IJsonValue> promise) noexcept
|
|
484
484
|
{
|
|
485
485
|
auto configuration{ CodePushConfig::Current().GetConfiguration() };
|
|
486
486
|
if (isRunningBinaryVersion)
|
|
@@ -498,7 +498,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
498
498
|
/*
|
|
499
499
|
* This method is the native side of the CodePush.getUpdateMetadata method.
|
|
500
500
|
*/
|
|
501
|
-
fire_and_forget CodePushNativeModule::GetUpdateMetadataAsync(CodePushUpdateState updateState, ReactPromise<IJsonValue> promise) noexcept
|
|
501
|
+
fire_and_forget CodePushNativeModule::GetUpdateMetadataAsync(CodePushUpdateState updateState, ReactPromise<IJsonValue> promise) noexcept
|
|
502
502
|
{
|
|
503
503
|
auto package{ co_await CodePushPackage::GetCurrentPackageAsync() };
|
|
504
504
|
if (package == nullptr)
|
|
@@ -539,14 +539,14 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
539
539
|
package.Insert(PackageIsPendingKey, JsonValue::CreateBooleanValue(currentUpdateIsPending));
|
|
540
540
|
promise.Resolve(package);
|
|
541
541
|
}
|
|
542
|
-
co_return;
|
|
542
|
+
co_return;
|
|
543
543
|
}
|
|
544
544
|
|
|
545
545
|
/*
|
|
546
546
|
* This method is the native side of the LocalPackage.install method.
|
|
547
547
|
*/
|
|
548
|
-
fire_and_forget CodePushNativeModule::InstallUpdateAsync(JsonObject updatePackage, CodePushInstallMode installMode, int minimumBackgroundDuration, ReactPromise<void> promise) noexcept
|
|
549
|
-
{
|
|
548
|
+
fire_and_forget CodePushNativeModule::InstallUpdateAsync(JsonObject updatePackage, CodePushInstallMode installMode, int minimumBackgroundDuration, ReactPromise<void> promise) noexcept
|
|
549
|
+
{
|
|
550
550
|
try
|
|
551
551
|
{
|
|
552
552
|
co_await CodePushPackage::InstallPackageAsync(updatePackage, IsPendingUpdate(L""));
|
|
@@ -568,7 +568,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
568
568
|
|
|
569
569
|
// Signal to JS that the update has been applied.
|
|
570
570
|
promise.Resolve();
|
|
571
|
-
co_return;
|
|
571
|
+
co_return;
|
|
572
572
|
}
|
|
573
573
|
|
|
574
574
|
/*
|
|
@@ -659,7 +659,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
659
659
|
* This information will be used to decide whether the application
|
|
660
660
|
* should ignore the update or not.
|
|
661
661
|
*/
|
|
662
|
-
void CodePushNativeModule::GetLatestRollbackInfo(ReactPromise<IJsonValue> promise) noexcept
|
|
662
|
+
void CodePushNativeModule::GetLatestRollbackInfo(ReactPromise<IJsonValue> promise) noexcept
|
|
663
663
|
{
|
|
664
664
|
auto localSettings{ GetLocalSettings() };
|
|
665
665
|
auto res{ localSettings.Values().TryLookup(LatestRollbackInfoKey) };
|
|
@@ -698,7 +698,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
698
698
|
promise.Resolve(JsonValue::CreateNullValue());
|
|
699
699
|
}
|
|
700
700
|
|
|
701
|
-
void CodePushNativeModule::Allow(ReactPromise<JSValue> promise) noexcept
|
|
701
|
+
void CodePushNativeModule::Allow(ReactPromise<JSValue> promise) noexcept
|
|
702
702
|
{
|
|
703
703
|
CodePushUtils::Log(L"Re-allowing restarts.");
|
|
704
704
|
m_allowed = true;
|
|
@@ -714,7 +714,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
714
714
|
promise.Resolve(JSValue::Null);
|
|
715
715
|
}
|
|
716
716
|
|
|
717
|
-
void CodePushNativeModule::ClearPendingRestart() noexcept
|
|
717
|
+
void CodePushNativeModule::ClearPendingRestart() noexcept
|
|
718
718
|
{
|
|
719
719
|
m_restartQueue.clear();
|
|
720
720
|
}
|
|
@@ -729,7 +729,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
729
729
|
/*
|
|
730
730
|
* This method is the native side of the CodePush.restartApp() method.
|
|
731
731
|
*/
|
|
732
|
-
fire_and_forget CodePushNativeModule::RestartApp(bool onlyIfUpdateIsPending, ReactPromise<JSValue> promise) noexcept
|
|
732
|
+
fire_and_forget CodePushNativeModule::RestartApp(bool onlyIfUpdateIsPending, ReactPromise<JSValue> promise) noexcept
|
|
733
733
|
{
|
|
734
734
|
co_await RestartAppInternal(onlyIfUpdateIsPending);
|
|
735
735
|
promise.Resolve(JSValue::Null);
|
|
@@ -737,11 +737,11 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
737
737
|
|
|
738
738
|
/*
|
|
739
739
|
* This method clears CodePush's downloaded updates.
|
|
740
|
-
* It is needed to switch to a different
|
|
741
|
-
* Note: we don�t recommend to use this method in scenarios other than that (CodePush will call this method
|
|
740
|
+
* It is needed to switch to a different release channel if the current release channel is more recent.
|
|
741
|
+
* Note: we don�t recommend to use this method in scenarios other than that (CodePush will call this method
|
|
742
742
|
* automatically when needed in other cases) as it could lead to unpredictable behavior.
|
|
743
743
|
*/
|
|
744
|
-
fire_and_forget CodePushNativeModule::ClearUpdates() noexcept
|
|
744
|
+
fire_and_forget CodePushNativeModule::ClearUpdates() noexcept
|
|
745
745
|
{
|
|
746
746
|
co_await ClearUpdatesStaticAsync();
|
|
747
747
|
}
|
|
@@ -752,7 +752,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
752
752
|
* removeBundleUrl. It is only to be used during tests and no-ops if the test
|
|
753
753
|
* configuration flag is not set.
|
|
754
754
|
*/
|
|
755
|
-
fire_and_forget CodePushNativeModule::DownloadAndReplaceCurrentBundle(std::wstring remoteBundleUrl) noexcept
|
|
755
|
+
fire_and_forget CodePushNativeModule::DownloadAndReplaceCurrentBundle(std::wstring remoteBundleUrl) noexcept
|
|
756
756
|
{
|
|
757
757
|
auto errorMessage{ L"Error: DownloadAndReplaceCurrentBundle is not currently implmented" };
|
|
758
758
|
hresult_error error{ E_NOTIMPL, errorMessage };
|
|
@@ -764,7 +764,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
764
764
|
* This method is checks if a new status update exists (new version was installed,
|
|
765
765
|
* or an update failed) and return its details (version label, status).
|
|
766
766
|
*/
|
|
767
|
-
fire_and_forget CodePushNativeModule::GetNewStatusReportAsync(ReactPromise<IJsonValue> promise) noexcept
|
|
767
|
+
fire_and_forget CodePushNativeModule::GetNewStatusReportAsync(ReactPromise<IJsonValue> promise) noexcept
|
|
768
768
|
{
|
|
769
769
|
if (needToReportRollback)
|
|
770
770
|
{
|
|
@@ -816,12 +816,12 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
816
816
|
co_return;
|
|
817
817
|
}
|
|
818
818
|
|
|
819
|
-
void CodePushNativeModule::RecordStatusReported(JsonObject statusReport) noexcept
|
|
819
|
+
void CodePushNativeModule::RecordStatusReported(JsonObject statusReport) noexcept
|
|
820
820
|
{
|
|
821
821
|
CodePushTelemetryManager::RecordStatusReported(statusReport);
|
|
822
822
|
}
|
|
823
823
|
|
|
824
|
-
void CodePushNativeModule::SaveStatusReportForRetry(JsonObject statusReport) noexcept
|
|
824
|
+
void CodePushNativeModule::SaveStatusReportForRetry(JsonObject statusReport) noexcept
|
|
825
825
|
{
|
|
826
826
|
CodePushTelemetryManager::SaveStatusReportForRetry(statusReport);
|
|
827
827
|
}
|
|
@@ -47,7 +47,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
47
47
|
static winrt::Windows::Storage::ApplicationDataContainer GetLocalSettings();
|
|
48
48
|
|
|
49
49
|
void OverrideAppVersion(std::wstring_view appVersion);
|
|
50
|
-
void
|
|
50
|
+
void SetReleaseChannelPublicId(std::wstring_view releaseChannelPublicId);
|
|
51
51
|
|
|
52
52
|
bool IsFailedHash(std::wstring_view packageHash);
|
|
53
53
|
|
|
@@ -79,7 +79,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
79
79
|
* This is the native side of the CodePush.getConfiguration method. It isn't
|
|
80
80
|
* currently exposed via the "react-native-code-push" module, and is used
|
|
81
81
|
* internally only by the CodePush.checkForUpdate method in order to get the
|
|
82
|
-
* app version, as well as the
|
|
82
|
+
* app version, as well as the release channel that was configured.
|
|
83
83
|
*/
|
|
84
84
|
REACT_METHOD(GetConfiguration, L"getConfiguration");
|
|
85
85
|
winrt::fire_and_forget GetConfiguration(winrt::Microsoft::ReactNative::ReactPromise<winrt::Windows::Data::Json::IJsonValue> promise) noexcept;
|
|
@@ -151,8 +151,8 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
151
151
|
|
|
152
152
|
/*
|
|
153
153
|
* This method clears CodePush's downloaded updates.
|
|
154
|
-
* It is needed to switch to a different
|
|
155
|
-
* Note: we don�t recommend to use this method in scenarios other than that (CodePush will call this method
|
|
154
|
+
* It is needed to switch to a different release channel if the current release channel is more recent.
|
|
155
|
+
* Note: we don�t recommend to use this method in scenarios other than that (CodePush will call this method
|
|
156
156
|
* automatically when needed in other cases) as it could lead to unpredictable behavior.
|
|
157
157
|
*/
|
|
158
158
|
REACT_METHOD(ClearUpdates, L"clearUpdates");
|
|
@@ -18,12 +18,12 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
18
18
|
|
|
19
19
|
static const std::wstring_view AppVersionKey{ L"appVersion" };
|
|
20
20
|
static const std::wstring_view DeploymentFailed{ L"DeploymentFailed" };
|
|
21
|
-
static const std::wstring_view
|
|
21
|
+
static const std::wstring_view ReleaseChannelPublicIdKey{ L"releaseChannelPublicId" };
|
|
22
22
|
static const std::wstring_view DeploymentSucceeded{ L"DeploymentSucceeded" };
|
|
23
23
|
static const std::wstring_view LabelKey{ L"label" };
|
|
24
24
|
static const std::wstring_view LastDeploymentReportKey{ L"CODE_PUSH_LAST_DEPLOYMENT_REPORT" };
|
|
25
25
|
static const std::wstring_view PackageKey{ L"package" };
|
|
26
|
-
static const std::wstring_view
|
|
26
|
+
static const std::wstring_view PreviousReleaseChannelPublicIdKey{ L"previousReleaseChannelPublicId" };
|
|
27
27
|
static const std::wstring_view PreviousLabelOrAppVersionKey{ L"previousLabelOrAppVersion" };
|
|
28
28
|
static const std::wstring_view RetryDeploymentReportKey{ L"CODE_PUSH_RETRY_DEPLOYMENT_REPORT" };
|
|
29
29
|
static const std::wstring_view StatusKey{ L"status" };
|
|
@@ -42,12 +42,12 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
42
42
|
{
|
|
43
43
|
if (IsStatusReportIdentifierCodePushLabel(previousStatusReportIdentifier))
|
|
44
44
|
{
|
|
45
|
-
auto
|
|
45
|
+
auto previousReleaseChannelPublicId{ GetReleaseChannelPublicIdFromStatusReportIdentifier(previousStatusReportIdentifier) };
|
|
46
46
|
auto previousLabel{ GetVersionLabelFromStatusReportIdentifier(previousStatusReportIdentifier) };
|
|
47
47
|
ClearRetryStatusReport();
|
|
48
48
|
JsonObject out;
|
|
49
49
|
out.Insert(AppVersionKey, JsonValue::CreateStringValue(appVersion));
|
|
50
|
-
out.Insert(
|
|
50
|
+
out.Insert(PreviousReleaseChannelPublicIdKey, JsonValue::CreateStringValue(previousReleaseChannelPublicId));
|
|
51
51
|
out.Insert(PreviousLabelOrAppVersionKey, JsonValue::CreateStringValue(previousLabel));
|
|
52
52
|
return out;
|
|
53
53
|
}
|
|
@@ -109,12 +109,12 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
109
109
|
ClearRetryStatusReport();
|
|
110
110
|
if (IsStatusReportIdentifierCodePushLabel(previousStatusReportIdentifier))
|
|
111
111
|
{
|
|
112
|
-
auto
|
|
112
|
+
auto previousReleaseChannelPublicId{ GetReleaseChannelPublicIdFromStatusReportIdentifier(previousStatusReportIdentifier) };
|
|
113
113
|
auto previousLabel{ GetVersionLabelFromStatusReportIdentifier(previousStatusReportIdentifier) };
|
|
114
114
|
JsonObject out;
|
|
115
115
|
out.Insert(PackageKey, currentPackage);
|
|
116
116
|
out.Insert(StatusKey, JsonValue::CreateStringValue(DeploymentSucceeded));
|
|
117
|
-
out.Insert(
|
|
117
|
+
out.Insert(PreviousReleaseChannelPublicIdKey, JsonValue::CreateStringValue(previousReleaseChannelPublicId));
|
|
118
118
|
out.Insert(PreviousLabelOrAppVersionKey, JsonValue::CreateStringValue(previousLabel));
|
|
119
119
|
return out;
|
|
120
120
|
}
|
|
@@ -165,22 +165,22 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
165
165
|
localSettings.Values().Remove(RetryDeploymentReportKey);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
/*static*/ std::wstring_view CodePushTelemetryManager::
|
|
168
|
+
/*static*/ std::wstring_view CodePushTelemetryManager::GetReleaseChannelPublicIdFromStatusReportIdentifier(std::wstring_view statusReportIdentifier)
|
|
169
169
|
{
|
|
170
170
|
return statusReportIdentifier.substr(0, statusReportIdentifier.find(':'));
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
/*static*/ hstring CodePushTelemetryManager::GetPackageStatusReportIdentifier(const JsonObject& package)
|
|
174
174
|
{
|
|
175
|
-
// Because
|
|
176
|
-
// combination of the
|
|
177
|
-
if (package.HasKey(
|
|
175
|
+
// Because release channels can be dynamically switched, we use a
|
|
176
|
+
// combination of the release channel public ID and label as the packageIdentifier.
|
|
177
|
+
if (package.HasKey(ReleaseChannelPublicIdKey) && package.HasKey(LabelKey))
|
|
178
178
|
{
|
|
179
179
|
return L"";
|
|
180
180
|
}
|
|
181
|
-
auto
|
|
181
|
+
auto releaseChannelPublicId{ package.GetNamedString(ReleaseChannelPublicIdKey) };
|
|
182
182
|
auto label{ package.GetNamedString(LabelKey) };
|
|
183
|
-
return
|
|
183
|
+
return releaseChannelPublicId + L":" + label;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
/*static*/ hstring CodePushTelemetryManager::GetPreviousStatusReportIdentifier()
|
|
@@ -19,7 +19,7 @@ namespace Microsoft::CodePush::ReactNative
|
|
|
19
19
|
|
|
20
20
|
private:
|
|
21
21
|
static void ClearRetryStatusReport();
|
|
22
|
-
static std::wstring_view
|
|
22
|
+
static std::wstring_view GetReleaseChannelPublicIdFromStatusReportIdentifier(std::wstring_view statusReportIdentifier);
|
|
23
23
|
static winrt::hstring GetPackageStatusReportIdentifier(const winrt::Windows::Data::Json::JsonObject& package);
|
|
24
24
|
static winrt::hstring GetPreviousStatusReportIdentifier();
|
|
25
25
|
static std::wstring_view GetVersionLabelFromStatusReportIdentifier(std::wstring_view statusReportIdentifier);
|