Adds CMFileMetadata class, a first-class object for interacting with metadata created when a file is uploaded to CloudMine.
Resolves a bug that could, in certain situations, cause a small memory leak when preparing a request.
Resolves a bug that, in rare circumstances, could result in the file cache filling up. This would only happen if enough files were downloaded to fill the cache while the app was still open, before the operating system had a chance to purge the cache directory.
Because the previous caching strategy was ineffective, the existing caching methods on the CMFile object have been deprecated. If your app uses any direct access to the CloudMine cache directories, you should remove this behavior. In future versions of the SDK, all caching will be handled internally.
Bugfixes:
- Resolve a compiler warning caused by stricter Objective-C casting rules in Xcode 8
- Fix a bug in the CMObject -description method that could, in rare circumstances, cause a crash
Bugfixes:
- CMDate now serializes and deserializes properly with NSKeyedArchiver/NSKeydUnarchiver
- CMStore no longer crashes if you attempt to save a nil object or ACL; prints log warning instead
- Resolved Swift interop issues:
- The SDK can now be imported into Swift projects without an Objective-C bridging header
- Subclassing
CMObject
in Swift is now less confusing thanks to resolved initializer designation
- The SDK no longer throws and catches exceptions internally, making breakpoint debugging more feasible
- The
-registerForPushNotifications:
family of methods onCMStore
have been deprecated and replaced with versions that work cleanly with changes to Cocoa - Various compiler warnings and deprecations have been resolved
- Updated deployment targets to iOS 8.0
- Minor documentation updates
- Integrated MAObjCRuntime library
- Added methods on CMStore that replace entire Objects.
- Added a method on CMObject that allows direct adding of ACL ID's to the access property.
- Changed all returned values to be
instancetype
- Fixed a bug in which a dictionary that looked like a CMObject, but shouldn't be, was deserialized to be a CMUntypedObject. Inserting
__class__: 'map'
as a Key/Value pair in your dictionaries will stop this from occurring.
- Added in Segments API for ACL's
- Updated License and year to 2015
- Bug Fixes
- Fixed many ARM64 Bugs in the Tests
- Changed all
typedef enums
to useNS_ENUM
instead to define the type. - Added a new method on searching CMUser's that uses CMStoreOptions to page and return count.
- Added "google" CMSocialIdentifier
- Added "currentUser" method to get the current user. This also persists and saves the user between app launches.
- Added callbacks to Social Login with the user cancels from a native login.
- Added new methods on CMUser that allow a user to be created directly with a access_token or oauthtoken/secret
- Updated loginWithSocialNetwork: to use Twitter.
- Updated loginWithSocialNetwork: to use Facebook (if the sdk is installed by the user, and the user is logged in).
- Added method to retrieve a user's profile without re-logging in. See "getProfile:"
- Added the ability to serialize any object that adheres to NSCoding. This allows you to create nested objects that are not CMObjects, and can make searching much easier.
- Added nested CMObjects.
- Updated push notifications to have a nice error message when attempting to register without a logged in user.
- Removed check in code to ensure a user is logged in, which could cause a crash.
- Added Ability to subscribe/unsubscribe to push channels.
- Added ability to list push channels a device is in.
- Changed all Network Requests to persist in the background if the app is closed during the operation.
- Added Singly as a network that can be used in Social Graph Queries
- Fixed a bug where international locales would fail to parse session expiration
- Fixed a bug in which URL's in social graphs querying would sometimes be encoded twice.
- Fixed a bug in which Snippet URL's were not encoded properly.
- Renamed Social Proxy methods too:
- runSocialGraphGETQueryOnNetwork:baseQuery:parameters:headers:withUser:successHandler:errorHandler:
- runSocialGraphQueryOnNetwork:withVerb:baseQuery:parameters:headers:messageData:withUser:successHandler:errorHandler:
- Added platform support for Social Proxy
- Fixed an issue where internal dictionaries to objects were not parsed into dictionaries if they did not have the class attribute.
- Fixed an issue where NSNull would not be properly encoded as NSNull in Dictionaries, Arrays, or nested objects.
- Fixed an issue where NSNull would be decoded to nil and set in a dictionary, causing it to crash.l
- Deprecated CMUser userId.
- Use CMUser email from now on. All methods have been renamed to suppor this - old methods are deprecated. Online documentation has been updated.
- This change makes the iOS Library more consistent with other platforms.
- Added Username field to CMUser
- CMUser can be created with either an email or a username.
- Can now change a user's email, username, and password.
- Fixed a bug in which the userId field of CMUser was being sent up to CloudMine. This was an oversight, and should not be happening - if you relied on this field (which is generally the user's email), you can still access it, but it will no longer be updated automatically. Rather, you should use a custom field instead of userId.
- Added Push Notification Support!
- Added call to register device push notification token with CloudMine.
- Added call to unregister device from push notifications with CloudMine.
- Added CMAppDelegateBase which can be used to handle push notification registration for you.
- Added runSocialGraphQueryOnNetwork: method to CMWebService for running queries on the services. The user needs to be logged in to the service first.
- Added RunQueryGETRequestOnNetwork: as a convenience method for running GET requests.
- Added Social Login. Login via social networks that are supported through CloudMine and Singly.
- Allow developers to specify scope for the social login.
- Linking of accounts! Logging in a user through a social network while a user is previously logged in will link the two accounts.
- Creation of accounts through social login! Logging in through a social network will automatically create the user account if no user is logged in.
- Fix bug that caused CMUser's userId field to not be serialized when cached to the filesystem.
- Fixed NSNull being set in CMUser profile as NSNULL, and not being set as nil. Changed to set as nil.
- Fix bug that caused CMFile's on-device caching to never work.
- Add method to
CMWebService
to run Java or JavaScript snippets directly without running a store operation and wrapping it. - Fixed a bug when a custom CMUser has properties named differently than how they are stored on the server.
- Recompile YAJL.framework to support iPhone 5 (armv7s).
- Rename
appSecret
toapiKey
inCMAPICredentials
so it's consistent with the dashboard phrasing. - Add PNG to mime types registered in
CMMimeType
. - Make
CMMimeType
case-insensitive. - Stop using deprecated
CMFile
constructor inCMStore
. - Add convenience method to
CMAPICredentials
to set the App ID and API Key at the same time. - Rebuild to support iPhone 5's armv7s architecture.
- Track modifications made to objects and only send dirty objects back to server.
- Remove erroneous user-related constructors from CMObject. All user-related things are on CMStore.
- Fix bug that would fail to remove private
__type__
fields from serialized NSDictonary objects.
- Initial release