Ver Fonte

Add check build

Marino Faggiana há 7 anos atrás
pai
commit
e007ab8900

+ 26 - 2
iOSClient/AppDelegate.m

@@ -1583,7 +1583,8 @@
     //self.maintenanceMode = YES;
 #endif
     
-    NSString *actualVersion = [CCUtility getVersionCryptoCloud];
+    NSString *actualVersion = [CCUtility getVersion];
+    NSString *actualBuild = [CCUtility getBuild];
     
     /* ---------------------- UPGRADE VERSION ----------------------- */
     
@@ -1597,6 +1598,8 @@
             [[NCManageDatabase sharedInstance] addCertificates:certificateLocation];
     }
     
+    // VERSION < 2.17.4
+    
     if (([actualVersion compare:@"2.17.4" options:NSNumericSearch] == NSOrderedAscending)) {
         
         [self maintenanceMode:YES];
@@ -1611,7 +1614,8 @@
         [[NCAutoUpload sharedInstance] alignPhotoLibrary];
         
         // Most important is done
-        [CCUtility setVersionCryptoCloud];
+        [CCUtility setVersion];
+        [CCUtility setBuild];
 
         // Directories + LocalFile
         NSArray *listDirectories = [CCCoreData migrateDirectories];
@@ -1625,6 +1629,26 @@
         [self maintenanceMode:NO];
     }
     
+    // VERSION == 2.17.4 BUILD < 23
+    
+    if ([actualVersion isEqualToString:@"2.17.4"]) {
+        
+        // Build 23 remove DB
+        if (([actualBuild compare:@"23" options:NSNumericSearch] == NSOrderedAscending) || actualBuild == nil) {
+            
+            [CCUtility setBuild];
+            
+            NSString *file;
+            NSURL *dirGroup = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[NCBrandOptions sharedInstance].capabilitiesGroups];
+            NSString *dirIniziale = [[dirGroup URLByAppendingPathComponent:appApplicationSupport] path];
+            
+            NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtPath:dirIniziale];
+            
+            while (file = [enumerator nextObject])
+                [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", dirIniziale, file] error:nil];
+        }
+    }
+    
     return YES;
 }
 

+ 2 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -36,11 +36,11 @@ class NCManageDatabase: NSObject {
         let config = Realm.Configuration(
         
             fileURL: dirGroup?.appendingPathComponent("\(appDatabaseNextcloud)/\(k_databaseDefault)"),
-            schemaVersion: 1,
+            schemaVersion: 2,
             
             migrationBlock: { migration, oldSchemaVersion in
                 // We haven’t migrated anything yet, so oldSchemaVersion == 0
-                if (oldSchemaVersion < 1) {
+                if (oldSchemaVersion < 2) {
                     // Nothing to do!
                     // Realm will automatically detect new properties and removed properties
                     // And will update the schema on disk automatically

+ 2 - 0
iOSClient/Main/CCSplit.h

@@ -30,6 +30,8 @@
 @interface CCSplit : UISplitViewController <UISplitViewControllerDelegate, CCLoginDelegate, CCIntroDelegate>
 
 @property (nonatomic, strong) NSString *version;
+@property (nonatomic, strong) NSString *build;
+
 @property (nonatomic, strong) CCIntro *intro;
 
 @end

+ 2 - 1
iOSClient/Main/CCSplit.m

@@ -86,7 +86,8 @@
 - (void)inizialize
 {
     //  setting version
-    self.version = [CCUtility setVersionCryptoCloud];
+    self.version = [CCUtility setVersion];
+    self.build = [CCUtility setBuild];
     
     // init home
     [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"initializeMain" object:nil];

+ 4 - 2
iOSClient/Utility/CCUtility.h

@@ -54,7 +54,8 @@
 
 + (void)setKeyChainPasscodeForUUID:(NSString *)uuid conPasscode:(NSString *)passcode;
 
-+ (NSString *)setVersionCryptoCloud;
++ (NSString *)setVersion;
++ (NSString *)setBuild;
 
 + (void)setBlockCode:(NSString *)blockcode;
 + (void)setSimplyBlockCode:(BOOL)simply;
@@ -94,7 +95,8 @@
 + (NSString *)getUUID;
 + (NSString *)getNameCurrentDevice;
 
-+ (NSString *)getVersionCryptoCloud;
++ (NSString *)getVersion;
++ (NSString *)getBuild;
 
 + (NSString *)getBlockCode;
 + (BOOL)getSimplyBlockCode;

+ 17 - 3
iOSClient/Utility/CCUtility.m

@@ -60,7 +60,7 @@
 
 + (void)adminRemoveIntro
 {
-    NSString *version = [self getVersionCryptoCloud];
+    NSString *version = [self getVersion];
     [UICKeyChainStore setString:nil forKey:version service:k_serviceShareKeyChain];
 }
 
@@ -82,7 +82,7 @@
     [UICKeyChainStore setString:passcode forKey:uuid service:k_serviceShareKeyChain];
 }
 
-+ (NSString *)setVersionCryptoCloud
++ (NSString *)setVersion
 {
     NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
     
@@ -91,6 +91,15 @@
     return version;
 }
 
++ (NSString *)setBuild
+{
+    NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
+    
+    [UICKeyChainStore setString:build forKey:@"build" service:k_serviceShareKeyChain];
+    
+    return build;
+}
+
 + (void)setBlockCode:(NSString *)blockcode
 {
     [UICKeyChainStore setString:blockcode forKey:@"blockcode" service:k_serviceShareKeyChain];
@@ -231,11 +240,16 @@
     return [[UIDevice currentDevice] name];
 }
 
-+ (NSString *)getVersionCryptoCloud
++ (NSString *)getVersion
 {
     return [UICKeyChainStore stringForKey:@"version" service:k_serviceShareKeyChain];
 }
 
++ (NSString *)getBuild
+{
+    return [UICKeyChainStore stringForKey:@"build" service:k_serviceShareKeyChain];
+}
+
 + (NSString *)getBlockCode
 {
     return [UICKeyChainStore stringForKey:@"blockcode" service:k_serviceShareKeyChain];