iOS Cloud SDK ChangeLog
Switched JSON Encoding/Decoding library to NSJSONSerialization from SBJSON.
We were using an old version of SBJSON, and there was a problem of handling unicode escaped strings. From this version, JSON is handled by NSJSONSerialization.
- Unicode escaped strings are now correctly handled by SDK.
- Decimal number parsing :
SBJSON uses NSDecimanNumber for parsing JSON returned from the server, whereas NSJSONSerializaton uses binary format double. Parsed two from the same string could have a very small error.
Example: 0.1 can be represented without any error in decimal, but with an error in binary double.
Several libraries use different methods for representing decimal numbers. You can not expect a unified method to be used among all the system and thus need to be prepared for such errors. The best practice for avoiding such errors is always to use an integer by aligning to the smaller unit when storing data and convert the data to a suitable unit on display.
Example: Store as 1100m rather than 1.1Km.
- Fix bug that [KiiLocaleContainer isEqual] crashed the app when the iOS version is earlier than 9.0.
- Fix concurrency issue on
- Fix concurrency issue on
- Add new API [KiiSocialConnect logInNavigationController:block:], so that your app can leverage the return NavigationViewController instance.
- Fix swift annotation.
- Fix Social connect login with sina weibo
- Mandate a thing password for adding a new thing owner.
- Specify mutable-contents in APNS Message
- List owned things
- Fixed warnings in apple doc.
- Remove KiiQuery limit(100) for number of items in client side.
- Changed KiiQuery.limit property type to unsigned int.
- Next query instance could be incorrect when KiiQuery instance is used in with multiple thread.
Workaround for sign-in error with Google account using SDK UI.
- Supports Has field query
- Supports Not query
Fixes API typos.
progess is changed to
progress in some APIs. We
adds fixed APIs instead of removing typo APIs. We marks those typo
APIs as deprecated.
- Fixed Info.plist included in framework to avoid error on exporting ipa with XCode8.
- Enabled to login with access token and refresh token.
- Fixed code sign error when integrate SDK with Cocoapods on device.
From this release, framework is changed to Dynamic Library.
- Minimum Deployment target is iOS 8.0
- dSYM files are included in the release archive.
- Enabled to reset password with PIN code in receipt SMS.
- Enabled to use Kii Cloud located in EU.
- Locale support
- Thing online state
- Removed KiiFile
Following property has been added.
When the application config requires Phone/ Email verification, new Phone/ Email is stored as pending identifier until the verification has been done. This API enables the application to show the accurate status of the KiiUser to end users.
After the following API has been completed, - changePhone:withBlock:, changePhone:withDelegate, changePhoneSynchronous:withError - changeEmail:withBlock:, changeEmail:withDelegate, changeEmailSynchronous:withError
phoneNumber, email property won't be changed by SDK immediately. The reason is new Phone/ Email has not been promoted as users' Phone/ Email if the verification has not been done. Please call #refresh() and check the existence of pendingPhoneNumber/ Email.
Following properties are saved in persistent storage from this version.
Added nullable and nonnulll annotation.
Note: This change will breaks backward compatibility if you're using Swift Bridging. Requested to wrap/unwrap the optional variables.
- Resumable transfer completion block is called twice when the Http Status is 500
READ_OBJECTS_IN_BUCKETacl. (It is reserved for future. Not available now)
Removed warnings in non ARC projects.
- Improve error handling (Provide easy way to get properties in error response).
- Enable to specify group ID on creation of the group.
- Replace NSURLConnection with NSURLSession.
- Fixed reserved key handling issue in KiiObject.
- Thing ownership flow improvement.
- Social integration with OpenID Connect. (Enterprise subscription)
- Fix expiresAt not sent properly on Social connect.
Social Connect login callback improvement.
- Now callback block is called in main queue.
- Callback is called after the login view is dismissed.
- Enable site CN3
- Fixed issue that can not parse Thing Scope Object URI with KiiObject#objectWithURI:
- Fixed the issue that the app crashed when attempting to load user credentials while device was locked.
Enable to save and restore user credentials anytime, including when the device is locked.
The following conditions must be met to enable this feature:
- The device must be unlocked once.
- The app must be restarted.
The user credentials stored by the old SDK will be handled as follows after upgrading to
- You can restore The credentials with no problem when the device is unlocked.
codeNonKeychainItemFounderror will be returned if you try to resotre them when the device is locked.
- Social integration, please confirm documentation for social integration
- Enable to login/link with Social Network Providers Access token for Google and Renren.
- Integrate Analytics SDK.
- Push Message Parser improvement. (Thing related event/ getting Event source)
- Listing Topics
- Checking the existence of Topic
- Add ability to get thingID from push KiiPushMessage.
- Facebook integration using ACAccount
- Drop support for iOS 6. From this release, the minimum required iOS SDK is 7.1.
- Thing for Mobile apps.
- Refresh Token.
- Expose newusercreated filed for native social integration.
- Refresh KiiUser after social network integration.
- Expose KiiTopic.name (read-only).
This version is hotfix of v2.1.27
- Fixed problem of using graph API 1.0 when the Facebook application is installed on the device.
This fix should be applied until 30 April 2015.
- Reset Password via SMS.
- Bucket encryption.
- API to check if the user is disabled.
- API's to obtain linked social account information and check if a specified social network is linked.
- Integrate QQ (http://imqq.com) with Kii Cloud. You can now signup/signin the users to your App with their QQ accounts.
- Upgraded to Facebook API v2.1 to follow their major update and deprecation of v1.X.
kii_new_userproperty that shows if a user is newly created or not in the dictionary can be obtained by KiiSocialConnect#getAccessTokenDictionaryForNetwork.
- Accept short display name. (longer than or equal to 1 character)
- Add support for iOS 8 categorized remote push notification.
- Minor fix on an error message.
- Support Swift programming language. You can now leverage Kii Cloud SDK in iOS apps written in Swift.
descriptionproperty of KiiExperiment to
experimentDescriptionto avoid ambiguity with NSObject protocol.
- Pseudo user. This feature enables KiiUser registration without identity (username, email, phone number) and password.
- Access token expiration setting API for KiiUser authentication.
Preparation for iOS 8
- Fix runtime problems on iOS 8.
Enable to get ID of KiiUser/KiiGroup and instantiate them from ID.
- Login with social network account by SocialNetworkConnector integration.
- Now supports following providers.
- Sina Weibo
- Now supports following providers.
- Add RandomVariationSampler for AB testing.
AB testing is now easily introduced without user sign-up.
Following error details can be obtained from NSError.
- HTTP status code.
- errorCode defined in REST API.
- error message.
Introduce new API for installing Push. Existing API has been deprecated.
(Groundwork of iOS 8)
- Upload Object body with content-type for iOS7 background transfer.
- Automatically refresh token by executing PhotoColle APIs.
- Support docomo Developer support authentication API.
- The "docomo cloud API developer portal" is now deprecated by NTT. You must get a new client ID, and client secret from docomo Developer support if you do not have ones yet.
Note: To use this feature, needs to update PhotoColleSDK to v1.1.0
- Counting objects in bucket
- Site SG is available.
- Signature has been renamed to avoid conflicts.
- KiiExperimentStatus enum
- KiiMessageField enum
- KiiRTransferStatus enum
- KiiUser overrides isEqual.
- Rid off warning that appears on submitting application to AppStore.
"The app references non-public selectors in Payload/<AppName>.app/<AppName>:authenticationContext"
- KiiGroup member can not be removed from the group in some cases.
- KiiFileBucket and KiiFile are deprecated. Use KiiBucket and KiiObject instead. #### Add API for internal use.
- Instantiate KiiQuery from NSDictionary equivalent to raw JSON String.
- Upload/Download/Publish Object body.
- Now you can attach arbitrary data to the object. (binary file, etc.)
- Support iOS7 background push.
- Now you can send "Push to User" message with content-available=1 payload to iOS application.
- Add Blocks argument API's in KiiSocialConnect.
- Add new API to get the instance of KiiUploader with NSError object that describes the problem occurred during instantiation.
- Rename all of FMDatabase class name to avoid name-space confliction.
- docomo "PHOTO COLLECTION" integration.
- Authentication with "d ACCOUNT."
- Upload photos to docomo "PHOTO COLLECTION" by ResumableTransfer interface.
- Note: To use this feature, needs to introduce PhotoColleSDK to your application that is running in JP server location. For details, please see http://docs.kii.com/ja/starts/ios/adding-kii-photocolle-sdk-to-your-application/
- AB Test sampling does not reflect defined distribution in some cases
- Rename VariationSampler#onCrank() to VariationSampler#chooseVariation().
- Allow an anonymous user to upload/download files by ResumableTransfer interface.
From this release, SDK needs these libraries. Please add them to "Link binary with libraries" on Xcode.
- Security.framework [New]
- ImageIO.framework [New]
- sqlite3.dylib [New]
- Pass reference of RTransfer instance on progress block.
It was copied for instance in the previous version
- Improve AB test error handling
Enable AB test when no user logged in
- Fix API documentation of Server code.
Able to execute when no user logged in.
- Fix object partial update
SDK sent fields that have not been updated on partial update.
- A/B Testing.
- Create KiiObject with specified ID.
- Replace Twitter.framework with Social.framework. Note: Please add Social.framework instead of Twitter.framework in "Link binary with libraries" on Xcode.
- Fix KiiObject partial update logic.
- Fix to add version information in KiiObject, which is instantiated by a query.
- Support 64 and 32-bit architecture in a single binary
- iOS 5 is no longer supported
- Login, link with Twitter
Note: this version needs two libraries added to "Link binary with libraries" on Xcode.
- Server Code Execution
- Getting group list by owner
- - (void)ownerOfGroupsWithBlock:(KiiUserArrayBlock)block, - (NSArray )ownerOfGroupsSynchronous:(NSError *)error : List groups owned by the user.
- Non server access version of KiiGroup#getOwner
- - (KiiUser *)getCachedOwner : Does not access to server unlike getOwner in KiiGroup class.
- Fix bugs
- Add validation feature to avoid using GCM reserved payload keys
- Fix KiiQuery sample on appledoc.
- Fix bugs
- Set/get Geo location of KiiObject.
- Query objects with a given GeoBox.
- Query objects with a given GeoDistance.
- Resumable transfer synchronous API (Download and Upload)
- Body attachment/deletion of JSON Object
- Site CN is available
- Fix bugs
- Resumable Transfer Asynchronous API (Download and Upload)
- Push uninstallation function
- Fix KiiFile progress using NSData
- Improve KiiUser password validation
- Enable KiiTopic name validation
- Fix behavior of KiiACLEntry
- Some bug fix
- Push subscription status check function
- Enable KiiUser property validation for displayName, country and phoneNumber
- Fix bugs
- KiiUser search function
- Add array of KiiClause as parameter on KiiQuery
- Enable AppScope topic subscription
- Enable FileBucket subscription
- Enable ACL to KiiTopic
- Fix bugs
- Add authenticateWithLocalPhoneNumber methods
- Add Basic Push notification
- Add Explicit Push
- Convert into Automatic Reference Counting (ARC)
- Fix Memory leaks