To upgrade native apps, we strongly recommend creating a new app from the app templates in the forceios npm package, then migrating the artifacts specific to your app into the new template.
For Swift, SmartSync Data Framework requires a few code changes. These changes result from enhanced error handling in some Objective-C methods. Because the Swift methods derive from these new Objective-C versions, they can now throw. Add try statements around calls to these sync methods:
open func syncDown(target: SyncDownTarget, options: SyncOptions, soupName: String, syncName: String?, onUpdate updateBlock: *@escaping* SyncUpdateBlock) throws -> SyncState
open func syncUp(target: SyncUpTarget, options: SyncOptions, soupName: String, syncName: String?, onUpdate updateBlock: *@escaping* SyncUpdateBlock) throws -> SyncState
open func reSync(id syncId: NSNumber, onUpdate updateBlock: @escaping SyncUpdateBlock) throws -> SyncState
open func reSync(named syncName: String, onUpdate updateBlock: @escaping SyncUpdateBlock) throws -> SyncState
open func cleanResyncGhosts(forId syncId: NSNumber, onComplete completionStatusBlock: @escaping SyncCompletionBlock) throws
See the Mobile SDK Development Guide for more information.
If you have questions, or encounter any issues, we'd love to hear from you. Post any feedback you have on Salesforce StackExchange.