Update of iOS code for updated API of UbiquityStoreManager.
[UPDATED] UbiquityStoreManager's new API uses cloudEnabled instead of iCloudEnabled.
This commit is contained in:
parent
d5bffd86d6
commit
ecd03ecf42
Binary file not shown.
@ -9,10 +9,10 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* The CLS_LOG macro provides as easy way to gather more information in your log messages that are
|
* The CLS_LOG macro provides as easy way to gather more information in your log messages that are
|
||||||
* sent with your crash data. CLS_LOG prepends your custom log message with the function name and
|
* sent with your crash data. CLS_LOG prepends your custom log message with the function name and
|
||||||
* line number where the macro was used. If your app was built with the DEBUG preprocessor macro
|
* line number where the macro was used. If your app was built with the DEBUG preprocessor macro
|
||||||
* defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
|
* defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
|
||||||
* If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
|
* If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
|
||||||
*
|
*
|
||||||
* Example output:
|
* Example output:
|
||||||
@ -26,18 +26,18 @@
|
|||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Add logging that will be sent with your crash data. This logging will not show up in the system.log
|
* Add logging that will be sent with your crash data. This logging will not show up in the system.log
|
||||||
* and will only be visible in your Crashlytics dashboard.
|
* and will only be visible in your Crashlytics dashboard.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
OBJC_EXTERN void CLSLog(NSString *format, ...);
|
OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -45,22 +45,11 @@ OBJC_EXTERN void CLSLog(NSString *format, ...);
|
|||||||
* and your Crashlytics dashboard. It is not recommended for Release builds.
|
* and your Crashlytics dashboard. It is not recommended for Release builds.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
OBJC_EXTERN void CLSNSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
|
||||||
|
|
||||||
@protocol CrashlyticsDelegate;
|
@protocol CrashlyticsDelegate;
|
||||||
|
|
||||||
@interface Crashlytics : NSObject {
|
@interface Crashlytics : NSObject
|
||||||
@private
|
|
||||||
NSString *_apiKey;
|
|
||||||
NSString *_dataDirectory;
|
|
||||||
NSString *_bundleIdentifier;
|
|
||||||
BOOL _installed;
|
|
||||||
NSMutableDictionary *_customAttributes;
|
|
||||||
id _user;
|
|
||||||
NSInteger _sendButtonIndex;
|
|
||||||
NSInteger _alwaysSendButtonIndex;
|
|
||||||
NSObject <CrashlyticsDelegate> *_delegate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic, readonly, copy) NSString *apiKey;
|
@property (nonatomic, readonly, copy) NSString *apiKey;
|
||||||
@property (nonatomic, readonly, copy) NSString *version;
|
@property (nonatomic, readonly, copy) NSString *version;
|
||||||
@ -73,7 +62,7 @@ OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
|||||||
* The recommended way to install Crashlytics into your application is to place a call
|
* The recommended way to install Crashlytics into your application is to place a call
|
||||||
* to +startWithAPIKey: in your -application:didFinishLaunchingWithOptions: method.
|
* to +startWithAPIKey: in your -application:didFinishLaunchingWithOptions: method.
|
||||||
*
|
*
|
||||||
* This delay defaults to 1 second in order to generally give the application time to
|
* This delay defaults to 1 second in order to generally give the application time to
|
||||||
* fully finish launching.
|
* fully finish launching.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
@ -105,21 +94,21 @@ OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Many of our customers have requested the ability to tie crashes to specific end-users of their
|
* Many of our customers have requested the ability to tie crashes to specific end-users of their
|
||||||
* application in order to facilitate responses to support requests or permit the ability to reach
|
* application in order to facilitate responses to support requests or permit the ability to reach
|
||||||
* out for more information. We allow you to specify up to three separate values for display within
|
* out for more information. We allow you to specify up to three separate values for display within
|
||||||
* the Crashlytics UI - but please be mindful of your end-user's privacy.
|
* the Crashlytics UI - but please be mindful of your end-user's privacy.
|
||||||
*
|
*
|
||||||
* We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record
|
* We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record
|
||||||
* in your system. This could be a database id, hash, or other value that is meaningless to a
|
* in your system. This could be a database id, hash, or other value that is meaningless to a
|
||||||
* third-party observer but can be indexed and queried by you.
|
* third-party observer but can be indexed and queried by you.
|
||||||
*
|
*
|
||||||
* Optionally, you may also specify the end-user's name or username, as well as email address if you
|
* Optionally, you may also specify the end-user's name or username, as well as email address if you
|
||||||
* do not have a system that works well with obscured identifiers.
|
* do not have a system that works well with obscured identifiers.
|
||||||
*
|
*
|
||||||
* Pursuant to our EULA, this data is transferred securely throughout our system and we will not
|
* Pursuant to our EULA, this data is transferred securely throughout our system and we will not
|
||||||
* disseminate end-user data unless required to by law. That said, if you choose to provide end-user
|
* disseminate end-user data unless required to by law. That said, if you choose to provide end-user
|
||||||
* contact information, we strongly recommend that you disclose this in your application's privacy
|
* contact information, we strongly recommend that you disclose this in your application's privacy
|
||||||
* policy. Data privacy is of our utmost concern.
|
* policy. Data privacy is of our utmost concern.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
@ -149,12 +138,12 @@ OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
|||||||
@end
|
@end
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The CLSCrashReport protocol exposes methods that you can call on crash report objects passed
|
* The CLSCrashReport protocol exposes methods that you can call on crash report objects passed
|
||||||
* to delegate methods. If you want these values or the entire object to stay in memory retain
|
* to delegate methods. If you want these values or the entire object to stay in memory retain
|
||||||
* them or copy them.
|
* them or copy them.
|
||||||
**/
|
**/
|
||||||
@protocol CLSCrashReport <NSObject>
|
@protocol CLSCrashReport <NSObject>
|
||||||
@optional
|
@required
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the session identifier for the crash report.
|
* Returns the session identifier for the crash report.
|
||||||
@ -171,7 +160,7 @@ OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* The CrashlyticsDelegate protocol provides a mechanism for your application to take
|
* The CrashlyticsDelegate protocol provides a mechanism for your application to take
|
||||||
* action on events that occur in the Crashlytics crash reporting system. You can make
|
* action on events that occur in the Crashlytics crash reporting system. You can make
|
||||||
* use of these calls by assigning an object to the Crashlytics' delegate property directly,
|
* use of these calls by assigning an object to the Crashlytics' delegate property directly,
|
||||||
* or through the convenience startWithAPIKey:delegate:... methods.
|
* or through the convenience startWithAPIKey:delegate:... methods.
|
||||||
*
|
*
|
||||||
@ -181,7 +170,7 @@ OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Called once a Crashlytics instance has determined that the last execution of the
|
* Called once a Crashlytics instance has determined that the last execution of the
|
||||||
* application ended in a crash. This is called some time after the crash reporting
|
* application ended in a crash. This is called some time after the crash reporting
|
||||||
* process has begun. If you have specified a delay in one of the
|
* process has begun. If you have specified a delay in one of the
|
||||||
* startWithAPIKey:... calls, this will take at least that long to be invoked.
|
* startWithAPIKey:... calls, this will take at least that long to be invoked.
|
||||||
@ -191,7 +180,7 @@ OBJC_EXTERN void CLSNSLog(NSString *format, ...);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Just like crashlyticsDidDetectCrashDuringPreviousExecution this delegate method is
|
* Just like crashlyticsDidDetectCrashDuringPreviousExecution this delegate method is
|
||||||
* called once a Crashlytics instance has determined that the last execution of the
|
* called once a Crashlytics instance has determined that the last execution of the
|
||||||
* application ended in a crash. A CLSCrashReport is passed back that contains data about
|
* application ended in a crash. A CLSCrashReport is passed back that contains data about
|
||||||
* the last crash report that was generated. See the CLSCrashReport protocol for method details.
|
* the last crash report that was generated. See the CLSCrashReport protocol for method details.
|
||||||
|
Binary file not shown.
BIN
Crashlytics/Crashlytics.framework/run
vendored
BIN
Crashlytics/Crashlytics.framework/run
vendored
Binary file not shown.
2
External/iCloudStoreManager
vendored
2
External/iCloudStoreManager
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 8faba0d3c35d471005c45280dc2670bc811e08c6
|
Subproject commit b748092775b2ee07c4c494434b43c72fb589ab67
|
@ -203,11 +203,11 @@ static char managedObjectContextKey;
|
|||||||
dbg(@"[StoreManager] %@", message);
|
dbg(@"[StoreManager] %@", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)ubiquityStoreManager:(UbiquityStoreManager *)manager didSwitchToiCloud:(BOOL)iCloudEnabled {
|
- (void)ubiquityStoreManager:(UbiquityStoreManager *)manager didSwitchToCloud:(BOOL)cloudEnabled {
|
||||||
|
|
||||||
// manager.cloudEnabled is more reliable (eg. iOS' MPAppDelegate tampers with didSwitch a bit)
|
// manager.cloudEnabled is more reliable (eg. iOS' MPAppDelegate tampers with didSwitch a bit)
|
||||||
iCloudEnabled = manager.cloudEnabled;
|
cloudEnabled = manager.cloudEnabled;
|
||||||
inf(@"Using iCloud? %@", iCloudEnabled? @"YES": @"NO");
|
inf(@"Using iCloud? %@", cloudEnabled? @"YES": @"NO");
|
||||||
|
|
||||||
#ifdef TESTFLIGHT_SDK_VERSION
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:cloudEnabled? MPCheckpointCloudEnabled: MPCheckpointCloudDisabled];
|
[TestFlight passCheckpoint:cloudEnabled? MPCheckpointCloudEnabled: MPCheckpointCloudDisabled];
|
||||||
@ -218,7 +218,7 @@ static char managedObjectContextKey;
|
|||||||
}];
|
}];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[MPConfig get].iCloud = @(iCloudEnabled);
|
[MPConfig get].iCloud = @(cloudEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)ubiquityStoreManager:(UbiquityStoreManager *)manager didEncounterError:(NSError *)error cause:(UbiquityStoreManagerErrorCause)cause
|
- (void)ubiquityStoreManager:(UbiquityStoreManager *)manager didEncounterError:(NSError *)error cause:(UbiquityStoreManagerErrorCause)cause
|
||||||
|
@ -395,8 +395,8 @@
|
|||||||
|
|
||||||
- (void)checkConfig {
|
- (void)checkConfig {
|
||||||
|
|
||||||
if ([[MPConfig get].iCloud boolValue] != [self.storeManager iCloudEnabled])
|
if ([[MPConfig get].iCloud boolValue] != [self.storeManager cloudEnabled])
|
||||||
[self.storeManager useiCloudStore:[[MPConfig get].iCloud boolValue] alertUser:YES];
|
self.storeManager.cloudEnabled = [[MPConfig get].iCloud boolValue];
|
||||||
if ([[MPiOSConfig get].sendInfo boolValue]) {
|
if ([[MPiOSConfig get].sendInfo boolValue]) {
|
||||||
if ([PearlLogger get].printLevel > PearlLogLevelInfo)
|
if ([PearlLogger get].printLevel > PearlLogLevelInfo)
|
||||||
[PearlLogger get].printLevel = PearlLogLevelInfo;
|
[PearlLogger get].printLevel = PearlLogLevelInfo;
|
||||||
@ -629,12 +629,12 @@
|
|||||||
|
|
||||||
#pragma mark - UbiquityStoreManagerDelegate
|
#pragma mark - UbiquityStoreManagerDelegate
|
||||||
|
|
||||||
- (void)ubiquityStoreManager:(UbiquityStoreManager *)manager didSwitchToiCloud:(BOOL)iCloudEnabled {
|
- (void)ubiquityStoreManager:(UbiquityStoreManager *)manager didSwitchToCloud:(BOOL)cloudEnabled {
|
||||||
|
|
||||||
[super ubiquityStoreManager:manager didSwitchToiCloud:iCloudEnabled];
|
[super ubiquityStoreManager:manager didSwitchToCloud:cloudEnabled];
|
||||||
|
|
||||||
if (![[MPConfig get].iCloudDecided boolValue]) {
|
if (![[MPConfig get].iCloudDecided boolValue]) {
|
||||||
if (!iCloudEnabled) {
|
if (!cloudEnabled) {
|
||||||
[PearlAlert showAlertWithTitle:@"iCloud"
|
[PearlAlert showAlertWithTitle:@"iCloud"
|
||||||
message:
|
message:
|
||||||
@"iCloud is now disabled.\n\n"
|
@"iCloud is now disabled.\n\n"
|
||||||
@ -657,7 +657,7 @@
|
|||||||
@"Apple can never see any of your passwords."
|
@"Apple can never see any of your passwords."
|
||||||
viewStyle:UIAlertViewStyleDefault
|
viewStyle:UIAlertViewStyleDefault
|
||||||
initAlert:nil tappedButtonBlock:^(UIAlertView *alert_, NSInteger buttonIndex_) {
|
initAlert:nil tappedButtonBlock:^(UIAlertView *alert_, NSInteger buttonIndex_) {
|
||||||
[self ubiquityStoreManager:manager didSwitchToiCloud:iCloudEnabled];
|
[self ubiquityStoreManager:manager didSwitchToCloud:cloudEnabled];
|
||||||
}
|
}
|
||||||
cancelTitle:[PearlStrings get].commonButtonThanks otherTitles:nil];
|
cancelTitle:[PearlStrings get].commonButtonThanks otherTitles:nil];
|
||||||
return;
|
return;
|
||||||
@ -667,7 +667,7 @@
|
|||||||
if (buttonIndex == [alert cancelButtonIndex])
|
if (buttonIndex == [alert cancelButtonIndex])
|
||||||
return;
|
return;
|
||||||
if (buttonIndex == [alert firstOtherButtonIndex] + 1)
|
if (buttonIndex == [alert firstOtherButtonIndex] + 1)
|
||||||
[manager useiCloudStore:YES alertUser:NO];
|
manager.cloudEnabled = YES;
|
||||||
} cancelTitle:@"Leave iCloud Off" otherTitles:@"Explain?", @"Enable iCloud", nil];
|
} cancelTitle:@"Leave iCloud Off" otherTitles:@"Explain?", @"Enable iCloud", nil];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,15 +164,15 @@
|
|||||||
[self initializeWordLabel:wordLabel];
|
[self initializeWordLabel:wordLabel];
|
||||||
} recurse:NO];
|
} recurse:NO];
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] addObserverForName:PersistentStoreDidChange object:nil queue:nil usingBlock:
|
[[NSNotificationCenter defaultCenter] addObserverForName:UbiquityManagedStoreDidChangeNotification object:nil queue:nil
|
||||||
^(NSNotification *note) {
|
usingBlock:^(NSNotification *note) {
|
||||||
[self updateUsers];
|
[self updateUsers];
|
||||||
}];
|
}];
|
||||||
[[NSNotificationCenter defaultCenter] addObserverForName:PersistentStoreDidMergeChanges object:nil queue:nil usingBlock:
|
[[NSNotificationCenter defaultCenter] addObserverForName:UbiquityManagedStoreDidImportChangesNotification object:nil queue:nil
|
||||||
^(NSNotification *note) {
|
usingBlock:^(NSNotification *note) {
|
||||||
[self updateUsers];
|
[self updateUsers];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[self updateLayoutAnimated:NO allowScroll:YES completion:nil];
|
[self updateLayoutAnimated:NO allowScroll:YES completion:nil];
|
||||||
|
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
|
Loading…
Reference in New Issue
Block a user