diff --git a/External/Pearl b/External/Pearl index bf1dffdb..986f092d 160000 --- a/External/Pearl +++ b/External/Pearl @@ -1 +1 @@ -Subproject commit bf1dffdbb4eb1a926a8a31b93b559d1053e083ea +Subproject commit 986f092d10eaab64b2ff7347f29e193b9b9e5de4 diff --git a/MasterPassword/C/mpw-algorithm_v0.c b/MasterPassword/C/mpw-algorithm_v0.c index 1878772f..7b8d1657 100644 --- a/MasterPassword/C/mpw-algorithm_v0.c +++ b/MasterPassword/C/mpw-algorithm_v0.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "mpw-types.h" #include "mpw-util.h" diff --git a/MasterPassword/C/mpw-util.h b/MasterPassword/C/mpw-util.h index 815706ad..41a515ae 100644 --- a/MasterPassword/C/mpw-util.h +++ b/MasterPassword/C/mpw-util.h @@ -11,16 +11,16 @@ //// Logging. #ifdef DEBUG -#ifndef trc -#define trc(...) fprintf( stderr, __VA_ARGS__ ) -#endif + #ifndef trc + #define trc(...) fprintf( stderr, __VA_ARGS__ ) + #endif #else -#ifndef trc -#define trc(...) do {} while (0) -#endif + #ifndef trc + #define trc(...) do {} while (0) + #endif #endif #ifndef ftl -#define ftl(...) do { fprintf( stderr, __VA_ARGS__ ); abort(); } while (0) + #define ftl(...) do { fprintf( stderr, __VA_ARGS__ ); abort(); } while (0) #endif //// Buffers and memory. diff --git a/MasterPassword/ObjC/MPAlgorithm.h b/MasterPassword/ObjC/MPAlgorithm.h index 65a0cb43..2c7d86f9 100644 --- a/MasterPassword/ObjC/MPAlgorithm.h +++ b/MasterPassword/ObjC/MPAlgorithm.h @@ -24,7 +24,7 @@ #define MPAlgorithmDefaultVersion MPAlgorithmVersionCurrent #define MPAlgorithmDefault MPAlgorithmForVersion(MPAlgorithmDefaultVersion) -id MPAlgorithmForVersion(NSUInteger version); +id MPAlgorithmForVersion(MPAlgorithmVersion version); id MPAlgorithmDefaultForBundleVersion(NSString *bundleVersion); PearlEnum( MPAttacker, diff --git a/MasterPassword/ObjC/MPAlgorithm.m b/MasterPassword/ObjC/MPAlgorithm.m index 788210f2..7195ed8c 100644 --- a/MasterPassword/ObjC/MPAlgorithm.m +++ b/MasterPassword/ObjC/MPAlgorithm.m @@ -17,7 +17,7 @@ #import "MPAlgorithm.h" -id MPAlgorithmForVersion(NSUInteger version) { +id MPAlgorithmForVersion(MPAlgorithmVersion version) { static NSMutableDictionary *versionToAlgorithm = nil; if (!versionToAlgorithm) diff --git a/MasterPassword/ObjC/MPAlgorithmV0.m b/MasterPassword/ObjC/MPAlgorithmV0.m index f25c2c93..538f45aa 100644 --- a/MasterPassword/ObjC/MPAlgorithmV0.m +++ b/MasterPassword/ObjC/MPAlgorithmV0.m @@ -15,12 +15,14 @@ // Copyright 2012 lhunath (Maarten Billemont). All rights reserved. // +#ifndef trc +#error error +#endif #import "MPAlgorithmV0.h" #import "MPEntities.h" #import "MPAppDelegate_Shared.h" #import "MPAppDelegate_InApp.h" #import "mpw-util.h" -#import "mpw-types.h" #include #include @@ -64,6 +66,11 @@ NSOperationQueue *_mpwQueue = nil; - (NSString *)description { + return strf( @"V%lu", (unsigned long)self.version ); +} + +- (NSString *)debugDescription { + return strf( @"<%@: version=%lu>", NSStringFromClass( [self class] ), (unsigned long)self.version ); } diff --git a/MasterPassword/ObjC/MPAppDelegate_InApp.m b/MasterPassword/ObjC/MPAppDelegate_InApp.m index 62c6fc35..9e50bd08 100644 --- a/MasterPassword/ObjC/MPAppDelegate_InApp.m +++ b/MasterPassword/ObjC/MPAppDelegate_InApp.m @@ -142,7 +142,7 @@ PearlAssociatedObjectProperty( NSMutableArray*, ProductObservers, productObserve float currentFuel = [[MPiOSConfig get].developmentFuelRemaining floatValue]; float purchasedFuel = transaction.payment.quantity / MP_FUEL_HOURLY_RATE; [MPiOSConfig get].developmentFuelRemaining = @(currentFuel + purchasedFuel); - if (![MPiOSConfig get].developmentFuelChecked || !currentFuel) + if (![MPiOSConfig get].developmentFuelChecked || currentFuel < DBL_EPSILON) [MPiOSConfig get].developmentFuelChecked = [NSDate date]; } [[NSUserDefaults standardUserDefaults] setObject:transaction.transactionIdentifier diff --git a/MasterPassword/ObjC/MPAppDelegate_Store.m b/MasterPassword/ObjC/MPAppDelegate_Store.m index 8eba5670..c1131ad2 100644 --- a/MasterPassword/ObjC/MPAppDelegate_Store.m +++ b/MasterPassword/ObjC/MPAppDelegate_Store.m @@ -223,20 +223,13 @@ PearlAssociatedObjectProperty( NSNumber*, StoreCorrupted, storeCorrupted ); self.storeCorrupted = @NO; #if TARGET_OS_IPHONE - PearlAddNotificationObserver( UIApplicationWillTerminateNotification, UIApp, [NSOperationQueue mainQueue], - ^(MPAppDelegate_Shared *self, NSNotification *note) { - [self.mainManagedObjectContext saveToStore]; - } ); - PearlAddNotificationObserver( UIApplicationDidEnterBackgroundNotification, UIApp, [NSOperationQueue mainQueue], - ^(MPAppDelegate_Shared *self, NSNotification *note) { - [self.mainManagedObjectContext saveToStore]; - } ); + PearlAddNotificationObserver( UIApplicationWillResignActiveNotification, UIApp, [NSOperationQueue mainQueue], #else - PearlAddNotificationObserver( NSApplicationWillTerminateNotification, NSApp, [NSOperationQueue mainQueue], - ^(MPAppDelegate_Shared *self, NSNotification *note) { - [self.mainManagedObjectContext saveToStore]; - } ); + PearlAddNotificationObserver( NSApplicationWillResignActiveNotification, NSApp, [NSOperationQueue mainQueue], #endif + ^(MPAppDelegate_Shared *self, NSNotification *note) { + [self.mainManagedObjectContext saveToStore]; + } ); // Perform a data sanity check on the newly loaded store to find and fix any issues. if ([[MPConfig get].checkInconsistency boolValue]) @@ -723,7 +716,7 @@ PearlAssociatedObjectProperty( NSNumber*, StoreCorrupted, storeCorrupted ); NSDate *lastUsed = [[NSDateFormatter rfc3339DateFormatter] dateFromString:siteElements[0]]; NSUInteger uses = (unsigned)[siteElements[1] integerValue]; MPSiteType type = (MPSiteType)[siteElements[2] integerValue]; - NSUInteger version = (unsigned)[siteElements[3] integerValue]; + MPAlgorithmVersion version = (MPAlgorithmVersion)[siteElements[3] integerValue]; NSUInteger counter = [siteElements[4] length]? (unsigned)[siteElements[4] integerValue]: NSNotFound; NSString *loginName = [siteElements[5] length]? siteElements[5]: nil; NSString *siteName = siteElements[6]; diff --git a/MasterPassword/ObjC/MPEntities.m b/MasterPassword/ObjC/MPEntities.m index 54dc7381..3b0c619f 100644 --- a/MasterPassword/ObjC/MPEntities.m +++ b/MasterPassword/ObjC/MPEntities.m @@ -93,7 +93,9 @@ - (id)algorithm { - return MPAlgorithmForVersion( MIN( MPAlgorithmVersionCurrent, MAX( MPAlgorithmVersion0, [self.version_ unsignedIntegerValue] ) ) ); + return MPAlgorithmForVersion( + MIN( MPAlgorithmVersionCurrent, + MAX( MPAlgorithmVersion0, (MPAlgorithmVersion)[self.version_ unsignedIntegerValue] ) ) ); } - (void)setAlgorithm:(id)algorithm { @@ -148,7 +150,7 @@ MPAlgorithmVersion algorithmVersion; while ((algorithmVersion = [self.algorithm version]) < MPAlgorithmDefaultVersion) { - NSUInteger toVersion = algorithmVersion + 1; + MPAlgorithmVersion toVersion = algorithmVersion + 1; if (![MPAlgorithmForVersion( toVersion ) tryMigrateSite:self explicit:explicit]) { wrn( @"%@ migration to version: %ld failed for site: %@", explicit? @"Explicit": @"Automatic", (long)toVersion, self ); @@ -295,7 +297,9 @@ - (id)algorithm { - return MPAlgorithmForVersion( MIN( MPAlgorithmVersionCurrent, MAX( MPAlgorithmVersion0, [self.version_ unsignedIntegerValue] ) ) ); + return MPAlgorithmForVersion( + MIN( MPAlgorithmVersionCurrent, + MAX( MPAlgorithmVersion0, (MPAlgorithmVersion)[self.version_ unsignedIntegerValue] ) ) ); } - (void)setAlgorithm:(id)version { diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.h b/MasterPassword/ObjC/Mac/MPPasswordWindowController.h index 2bc790f6..62581bff 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.h +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.h @@ -26,6 +26,8 @@ @property(nonatomic) NSMutableArray *sites; @property(nonatomic) NSString *masterPassword; +// TODO: For some reason, some builds, this will work; other builds, it will not. Behavior changes without code change. +@property(nonatomic) BOOL showVersionContainer; @property(nonatomic) BOOL alternatePressed; @property(nonatomic) BOOL locked; @property(nonatomic) BOOL newUser; diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m index d80f8cb0..bf74407d 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m @@ -117,6 +117,7 @@ BOOL alternatePressed = (theEvent.modifierFlags & NSAlternateKeyMask) != 0; if (alternatePressed != self.alternatePressed) { self.alternatePressed = alternatePressed; + self.showVersionContainer = self.alternatePressed || self.selectedSite.outdated; [self.selectedSite updateContent]; if (self.locked) { @@ -587,6 +588,8 @@ (__bridge id)[NSColor whiteColor].CGColor, (__bridge id)[NSColor colorWithDeviceWhite:1 alpha:gradientOpacity].CGColor ]; + + self.showVersionContainer = self.alternatePressed || self.selectedSite.outdated; } - (void)createNewSite:(NSString *)siteName { diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib b/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib index 1d2ce411..af8e1b04 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib @@ -1,8 +1,8 @@ - + - + @@ -24,7 +24,6 @@ - @@ -151,6 +150,7 @@ + @@ -330,7 +330,7 @@ NSNegateBoolean - + @@ -438,7 +438,7 @@ NSNegateBoolean - + @@ -713,7 +713,7 @@ - + @@ -750,12 +750,12 @@ - + - + @@ -809,20 +809,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + NSNegateBoolean + + + + + + + @@ -842,7 +917,6 @@ - @@ -855,15 +929,17 @@ + - + + diff --git a/MasterPassword/ObjC/Mac/MPSiteModel.h b/MasterPassword/ObjC/Mac/MPSiteModel.h index ae29dc04..01e30cf9 100644 --- a/MasterPassword/ObjC/Mac/MPSiteModel.h +++ b/MasterPassword/ObjC/Mac/MPSiteModel.h @@ -36,6 +36,8 @@ @property (nonatomic) NSUInteger counter; @property (nonatomic) NSDate *lastUsed; @property (nonatomic) id algorithm; +@property (nonatomic) MPAlgorithmVersion algorithmVersion; +@property (nonatomic, readonly) BOOL outdated; @property (nonatomic, readonly) BOOL generated; @property (nonatomic, readonly) BOOL stored; @property (nonatomic, readonly) BOOL transient; diff --git a/MasterPassword/ObjC/Mac/MPSiteModel.m b/MasterPassword/ObjC/Mac/MPSiteModel.m index ba9f8ace..9e1a700e 100644 --- a/MasterPassword/ObjC/Mac/MPSiteModel.m +++ b/MasterPassword/ObjC/Mac/MPSiteModel.m @@ -143,6 +143,36 @@ [self updateContent]; } +- (MPAlgorithmVersion)algorithmVersion { + + return self.algorithm.version; +} + +- (void)setAlgorithmVersion:(MPAlgorithmVersion)algorithmVersion { + + if (algorithmVersion == self.algorithm.version) + return; + [self willChangeValueForKey:@"outdated"]; + self.algorithm = MPAlgorithmForVersion( algorithmVersion )?: self.algorithm; + [self didChangeValueForKey:@"outdated"]; + + if (_entityOID) + [MPMacAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) { + MPSiteEntity *entity = [self entityInContext:context]; + entity.algorithm = self.algorithm; + [context saveToStore]; + + [self updateContent:entity]; + }]; + else + [self updateContent]; +} + +- (BOOL)outdated { + + return self.algorithmVersion < MPAlgorithmVersionCurrent; +} + - (BOOL)generated { return self.type & MPSiteTypeClassGenerated; diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/xcshareddata/xcschemes/MasterPassword Mac (App Store).xcscheme b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/xcshareddata/xcschemes/MasterPassword Mac (App Store).xcscheme index f2d7e07f..8207edb0 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/xcshareddata/xcschemes/MasterPassword Mac (App Store).xcscheme +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/xcshareddata/xcschemes/MasterPassword Mac (App Store).xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,17 +38,21 @@ ReferencedContainer = "container:MasterPassword-Mac.xcodeproj"> + + - + - + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,17 +38,21 @@ ReferencedContainer = "container:MasterPassword-Mac.xcodeproj"> + + - + - + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,17 +38,21 @@ ReferencedContainer = "container:MasterPassword-Mac.xcodeproj"> + + - + - + #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8 -#warning "This project uses features only available in Mac OS X 10.8 and later." + #warning "This project uses features only available in Mac OS X 10.8 and later." #endif #import "Pearl-Prefix.pch" @@ -15,10 +16,54 @@ #import #ifdef CRASHLYTICS -#import + #import #endif #import "MPTypes.h" #import "MPMacConfig.h" +#else + +#import +#import +#import +#import + +#define trc(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:trc:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define dbg(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:dbg:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define inf(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:inf:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define wrn(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:wrn:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define err(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:err:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define ftl(format, ...) do{objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:ftl:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__); abort(); } while (0) + #endif diff --git a/MasterPassword/ObjC/iOS/MasterPassword-Info.plist b/MasterPassword/ObjC/iOS/MasterPassword-Info.plist index 6eb7f0af..0c32cda6 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-Info.plist +++ b/MasterPassword/ObjC/iOS/MasterPassword-Info.plist @@ -30,7 +30,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.lyndir.lhunath.MasterPassword + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/MasterPassword/ObjC/iOS/MasterPassword-Prefix.pch b/MasterPassword/ObjC/iOS/MasterPassword-Prefix.pch index 76d78331..0d9d53a1 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-Prefix.pch +++ b/MasterPassword/ObjC/iOS/MasterPassword-Prefix.pch @@ -3,7 +3,6 @@ // #import - #ifndef __IPHONE_5_0 #warning "This project uses features only available in iOS SDK 5.0 and later." #endif @@ -17,10 +16,54 @@ #import #ifdef CRASHLYTICS -#import + #import #endif #import "MPTypes.h" #import "MPiOSConfig.h" +#else + +#import +#import +#import +#import + +#define trc(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:trc:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define dbg(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:dbg:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define inf(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:inf:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define wrn(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:wrn:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define err(format, ...) objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:err:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__) +#define ftl(format, ...) do{objc_msgSend( \ + objc_msgSend( (id)objc_getClass("PearlLogger"), sel_getUid( "get" ) ), \ + sel_getUid( "inFile:atLine:ftl:" ), \ + basename( (char *)__FILE__ ), __LINE__, \ + CFStringCreateWithCString( NULL, format, kCFStringEncodingUTF8 ), \ + ##__VA_ARGS__); abort(); } while (0) + #endif diff --git a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj index dfb53cfd..58296d80 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj @@ -3225,7 +3225,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = MP; - LastUpgradeCheck = 0610; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = Lyndir; TargetAttributes = { DA32D01F19D111C6004F3F0E = { @@ -3873,6 +3873,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DSTROOT = "/tmp/${PRODUCT_NAME}.dst"; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -4029,6 +4030,7 @@ "-framework", Reveal, ); + PRODUCT_BUNDLE_IDENTIFIER = com.lyndir.lhunath.MasterPassword; PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "3251b7d3-04df-4c8e-a410-d020ffc92d10"; SKIP_INSTALL = NO; @@ -4063,6 +4065,7 @@ "$(inherited)", "-lscryptenc-ios-sim", ); + PRODUCT_BUNDLE_IDENTIFIER = com.lyndir.lhunath.MasterPassword; PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "59b587d0-3ef3-4691-9f12-c48f7f283002"; SKIP_INSTALL = NO; @@ -4178,6 +4181,7 @@ "$(inherited)", "-lscryptenc-ios-sim", ); + PRODUCT_BUNDLE_IDENTIFIER = com.lyndir.lhunath.MasterPassword; PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "a1d8cfc8-b8db-4544-af34-28cc75e46c40"; SKIP_INSTALL = NO; diff --git a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/xcshareddata/xcschemes/MasterPassword iOS (App Store).xcscheme b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/xcshareddata/xcschemes/MasterPassword iOS (App Store).xcscheme index 79de29c7..f99e5ee1 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/xcshareddata/xcschemes/MasterPassword iOS (App Store).xcscheme +++ b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/xcshareddata/xcschemes/MasterPassword iOS (App Store).xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,17 +38,21 @@ ReferencedContainer = "container:MasterPassword-iOS.xcodeproj"> + + - + - + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,17 +38,21 @@ ReferencedContainer = "container:MasterPassword-iOS.xcodeproj"> + + - + - +