Releases: dropbox/dropbox-sdk-obj-c
Global response handlers
Added
- Added global error handling capability. Read more here.
- Added easy task retry. Read more here.
- Exposed access token in clients.
- Added
isRequiredDropboxAppInstalled
for OpenWith partners.
Fixed
- Improved token migration handler behavior.
- Separate clients by auth-type, not namespace.
- Fixed app-extension safety regression.
- Improved batch upload to handle very large number of files.
- Fixed redefining block variables, and added explicit
self->
references.
Bug fixes
Bug fixes and feature requests
Bug fixes
- Fix
reauthorizeClient
bug. - nil
DBTransportConfig
shared object after auth. - A few small assorted bugs.
Feature request
- Expose
sharedContainerIdentifier
inDBTransportConfig
object. - Separated relevant SDK constants into a public file.
Bug fixes and Feature Requests
Bug fixes
- Batch upload bugs fixed (including response handler called too many times, not uploading files of size that is a multiple of the chunk upload size, and implementing a more granular progress handler).
- SDK longpoll timeout extended to support API longpoll timeout length.
Feature requests
- Support for partial download is exposed now for all download methods.
- macOS example project is included in the SDK.
- Controllers are now nullable in
authorizeFromController
for iOS and macOS.
Feature Requests
Feature Requests
- OAuth token migration tool for migrating API v1 tokens to API v2 tokens (documentation here)
- Tokens saved in the last 4 years via the iOS / OS X Core SDKs and iOS / OS X Sync SDKS are covered
Official Partner OpenWith logic
New Features
- SDK now supports handling our "OpenWith" flow that Dropbox official partners use. Third-party developers should not need to use any of this logic (which is in
Source/ObjectiveDropboxOfficial/Platform/ObjectiveDropboxOfficial_iOS/OfficialPartners/OpenWith/
)
Breaking Changes, Bug Fixes and Public Spec Updates
Breaking Changes
We apologize for the breaking changes here, but a few classes and methods have been renamed in the latest version of the SDK, which will break your existing integrations. These changes reflect a change in naming philosophy to conform to platform-specific (here, Obj-C) standards, over our Dropbox API standards.
Here are the interface-breaking name changes:
Basic use cases:
DropboxClient
class -->DBUserClient
DropboxTeamClient
class -->DBTeamClient
DropboxClientsManager
class -->DBClientsManager
DBTransportClient
class -->DBTransportDefaultClient
DBError
class -->DBRequestError
response:
method for installing handlers -->setResponseBlock:
progress:
method for installing progress handlers -->setProgressBlock:
unlinkClients
method (inDBClientsManager
) -->unlinkAndResetClients
Advanced use cases:
setupWithAppKey:transportClient
method for customizing networking behavior -->setupWithTransportConfig:
which takes aDBTransportDefaultConfig
wrapper class around the networking parameters- All analogous
setUpWith...
methods (for Desktop, Team, and Multi-User) have been updated likewise.
There were several other renamings, but those shouldn't affect usage of the SDK by external parties.
We know these breaking changes can be a pain – sorry for the inconvenience! Hopefully, it should be a quick refactor in your existing code, and will make things clearer going forward, as we adopt a more consistent, understandable naming convention.
If you run into issues, please don't hesitate to reach out in the Issues section of our GitHub page.
Bug fixes
DB
prefix more standardized now (removedDropbox
prefix), and name-collision likely names likeDBBase
have been renamed.- Fixed
DBTask
cancellation exception bug (now implementssuspend
,start
,resume
). - Compilation times much faster now (implementation logic has been consolidated into only a few files now).
- Support locale in OAuth flow (defaults to current locale on device).
- Fixed bug where cancel handler isn't executed when offline.
- Fixed open Unions throwing exception for unseen field bug.
- Fixed warnings when integrating with non-ARC project.
- README updated and now up-to-date.
- Example projects updated and now up-to-date.
- Separated transport layer and generated/handwritten layers out more cleanly.
Spec update
Files namespace:
- Added Sha256HexHash alias.
- Added content_hash to FileMetadata.
- Added upload_api_rate_limit feature attribute to upload_session/start, upload_session/append_v2, upload_session/append, upload, upload_session/finish_batch.
- Added duplicated_or_nested_paths to RelocationError and removed from RelocationBatchError.
- Added properties api_group attribute and is_preview attribute to properties/*.
- Added disable_viewer_info and enable_viewer_info to CommitInfoWithProperties.
- Added link_metadata to SharedFileMetadata.
- Added ViewerInfoPolicy union.
- Added no_explicit_access to MemberSelector.
- Deprecated change_file_member_access.
- Added update_file_member route and UpdateFileMemberArgs struct.
Sharing namespace:
- Added viewer_info_policy, disable_viewer_info, enable_viewer_info to FolderPolicy.
- Added team, is_inside_team_folder, path_lower to SharedLinkPolicy.
- Added link_metadata, policy, shared_folder_id, time_invited to SharedFolderMetadata.
- Added actions, link_settings, viewer_info_policy to ShareFolderArg and removed default values from policies in ShareFolderArg.
- Added viewer_info_policy, link_settings to UpdateFolderPolicyArg.
Stone Cfg namespace:
- Added attribute api_group, is_preview.
- Removed attributes alpha_group, beta_group.
Team namespace:
- Added joined_on, persistent_id to MemberProfile.
- Added team_member_id, external_id to UserSelectorArg.
- Added TeamMemberId, MemberExternalId, GroupExternalId, ResellerId aliases.
- Added company_managed, system_managed to GroupManagementType.
- Added TimeRange.
- Added archive_in_progress to TeamFolderStatus, TeamFolderIdArg.
- Added BaseTeamFolderError.
- Added folder_name_reserved to TeamFolderCreateError.
- TeamFolderRenameError, TeamFolderArchiveError, BaseTeamFolderError, TeamFolderPermanentlyDeleteError now extend BaseTeamFolderError.
- Added folder_name_reserved to TeamFolderRenameError.
- Added GroupSelectorWithTeamGroupError.
- GroupMemberSelectorError, GroupMembersSelectorError now extends GroupSelectorWithTeamGroupError.
- Removed alpha from alpha/groups/*.
- GroupDeleteError, GroupUpdateError, GroupMembersAddError now extends GroupSelectorWithTeamGroupError.
- Added members_not_in_team, users_not_found to GroupMembersAddError.
- Added joined_on to TeamMemberProfile.
- Added member_persistent_id, duplicate_member_persistent_id, persistent_id_disabled, new_persistent_id, persistent_id_disabled, persistent_id_used_by_other_user to MemberSelectorError.
Bug fixes
Bug fixes
Bad Release
Bad release – please do not pull.