mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-11-25 00:43:37 +08:00
Compare commits
3 Commits
v5.9.3
...
v5.10.0-be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5786bf8132 | ||
|
|
1bd5fbbc94 | ||
|
|
cd2eb9417a |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -41,4 +41,5 @@ local.properties
|
|||||||
node_modules/
|
node_modules/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|
||||||
Example/**/update.json
|
Example/**/update.json
|
||||||
|
yarn-error.log
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ RCT_EXPORT_MODULE(RCTPushy);
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
NSString *curVersion = pushyInfo[paramCurrentVersion];
|
NSString *curVersion = pushyInfo[paramCurrentVersion];
|
||||||
NSString *lastVersion = pushyInfo[paramLastVersion];
|
|
||||||
|
|
||||||
BOOL isFirstTime = [pushyInfo[paramIsFirstTime] boolValue];
|
BOOL isFirstTime = [pushyInfo[paramIsFirstTime] boolValue];
|
||||||
BOOL isFirstLoadOK = [pushyInfo[paramIsFirstLoadOk] boolValue];
|
BOOL isFirstLoadOK = [pushyInfo[paramIsFirstLoadOk] boolValue];
|
||||||
@@ -92,23 +91,7 @@ RCT_EXPORT_MODULE(RCTPushy);
|
|||||||
NSString *loadVersion = curVersion;
|
NSString *loadVersion = curVersion;
|
||||||
BOOL needRollback = (!ignoreRollback && isFirstTime == NO && isFirstLoadOK == NO) || loadVersion.length<=0;
|
BOOL needRollback = (!ignoreRollback && isFirstTime == NO && isFirstLoadOK == NO) || loadVersion.length<=0;
|
||||||
if (needRollback) {
|
if (needRollback) {
|
||||||
loadVersion = lastVersion;
|
loadVersion = [self rollback];
|
||||||
|
|
||||||
if (lastVersion.length) {
|
|
||||||
// roll back to last version
|
|
||||||
[defaults setObject:@{paramCurrentVersion:lastVersion,
|
|
||||||
paramIsFirstTime:@(NO),
|
|
||||||
paramIsFirstLoadOk:@(YES),
|
|
||||||
paramPackageVersion:curPackageVersion}
|
|
||||||
forKey:keyPushyInfo];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// roll back to bundle
|
|
||||||
[defaults setObject:nil forKey:keyPushyInfo];
|
|
||||||
}
|
|
||||||
[defaults setObject:@(YES) forKey:keyRolledBackMarked];
|
|
||||||
[defaults synchronize];
|
|
||||||
// ...need clear files later
|
|
||||||
}
|
}
|
||||||
else if (isFirstTime && !ignoreRollback){
|
else if (isFirstTime && !ignoreRollback){
|
||||||
// bundleURL may be called many times, ignore rollbacks before process restarted again.
|
// bundleURL may be called many times, ignore rollbacks before process restarted again.
|
||||||
@@ -121,13 +104,15 @@ RCT_EXPORT_MODULE(RCTPushy);
|
|||||||
[defaults synchronize];
|
[defaults synchronize];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loadVersion.length) {
|
NSString *downloadDir = [RCTPushy downloadDir];
|
||||||
NSString *downloadDir = [RCTPushy downloadDir];
|
while (loadVersion.length) {
|
||||||
|
|
||||||
NSString *bundlePath = [[downloadDir stringByAppendingPathComponent:loadVersion] stringByAppendingPathComponent:BUNDLE_FILE_NAME];
|
NSString *bundlePath = [[downloadDir stringByAppendingPathComponent:loadVersion] stringByAppendingPathComponent:BUNDLE_FILE_NAME];
|
||||||
if ([[NSFileManager defaultManager] fileExistsAtPath:bundlePath isDirectory:NULL]) {
|
if ([[NSFileManager defaultManager] fileExistsAtPath:bundlePath isDirectory:NULL]) {
|
||||||
NSURL *bundleURL = [NSURL fileURLWithPath:bundlePath];
|
NSURL *bundleURL = [NSURL fileURLWithPath:bundlePath];
|
||||||
return bundleURL;
|
return bundleURL;
|
||||||
|
} else {
|
||||||
|
RCTLogError(@"RCTPushy -- bundle version %@ not found", loadVersion);
|
||||||
|
loadVersion = [self rollback];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -136,6 +121,29 @@ RCT_EXPORT_MODULE(RCTPushy);
|
|||||||
return [RCTPushy binaryBundleURL];
|
return [RCTPushy binaryBundleURL];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+ (NSString *) rollback {
|
||||||
|
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||||
|
|
||||||
|
NSDictionary *pushyInfo = [defaults dictionaryForKey:keyPushyInfo];
|
||||||
|
NSString *lastVersion = pushyInfo[paramLastVersion];
|
||||||
|
NSString *curPackageVersion = [RCTPushy packageVersion];
|
||||||
|
if (lastVersion.length) {
|
||||||
|
// roll back to last version
|
||||||
|
[defaults setObject:@{paramCurrentVersion:lastVersion,
|
||||||
|
paramIsFirstTime:@(NO),
|
||||||
|
paramIsFirstLoadOk:@(YES),
|
||||||
|
paramPackageVersion:curPackageVersion}
|
||||||
|
forKey:keyPushyInfo];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// roll back to bundle
|
||||||
|
[defaults setObject:nil forKey:keyPushyInfo];
|
||||||
|
}
|
||||||
|
[defaults setObject:@(YES) forKey:keyRolledBackMarked];
|
||||||
|
[defaults synchronize];
|
||||||
|
return lastVersion;
|
||||||
|
}
|
||||||
|
|
||||||
+ (BOOL)requiresMainQueueSetup {
|
+ (BOOL)requiresMainQueueSetup {
|
||||||
// only set to YES if your module initialization relies on calling UIKit!
|
// only set to YES if your module initialization relies on calling UIKit!
|
||||||
return NO;
|
return NO;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "react-native-update",
|
"name": "react-native-update",
|
||||||
"version": "5.9.3",
|
"version": "5.10.0-beta0",
|
||||||
"description": "react-native hot update",
|
"description": "react-native hot update",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user