Sample Tasks for Migration
Below are two sample tasks to enter in your issue tracker for migrating the Alchemer Mobile iOS SDK.
Update the Alchemer Mobile Dependency to Version 6
Acceptance Criteria:
- Remove dependency for previous version(s) of the Alchemer Mobile iOS SDK
- Add dependency for the ApptentiveKit iOS SDK
- Update import statements from
import Apptentive
toimport ApptentiveKit
Update from Deprecated Methods in the ApptentiveKit iOS SDK
For most customers, very few of these will need to be removed/updated. The simplest approach is likely to build your project and fix any deprecation warnings that result.
Acceptance Criteria:
Change references to newly-updated methods/properties
- Update from the
register(with:)
static method (that takes anApptentiveConfiguration
argument) to theregister(with:competion:)
instance method (that takes anApptentive.AppCredentials
argument) - Update from
engage(_:fromViewController:)
toengage(event:from:)
- Update from
engage(_:fromViewController:completion:)
toengage(event:from:completion:)
(note that the completion handler’s argument’s type is nowResult<Bool, Error>
) - Update the completion handler in calls to
presentMessageCenter(from:completion:)
to acccept a parameter of typeResult<Bool, Error>
- (For Swift files) Update from
addCustomPersonData(_:withKey:)
andremoveCustomPersonData(withKey:) to subscripting
personCustomData` - Update code that accesses the
logLevel
property to set thelogLevel
on theApptentiveLogger
object or one of it’s static properties
Change references to newly-updated methods/properties
- Update from the
register(with:)
static method (that takes anApptentiveConfiguration
argument) to theregister(with:competion:)
instance method (that takes anApptentive.AppCredentials
argument) - Update from
engage(_:fromViewController:)
toengage(event:from:)
- Update from
engage(_:fromViewController:completion:)
toengage(event:from:completion:)
(note that the completion handler’s argument’s type is nowResult<Bool, Error>
) - Update the completion handler in calls to
presentMessageCenter(from:completion:)
to acccept a parameter of typeResult<Bool, Error>
- (For Swift files) Update from
addCustomPersonData(_:withKey:)
andremoveCustomPersonData(withKey:) to subscripting
personCustomData` - Update code that accesses the
logLevel
property to set thelogLevel
on theApptentiveLogger
object or one of it’s static properties
Change any remaining references to previously-updated properties
- Update references to the
mParticleId
property tomParticleID
- Update references to the
Apptentive.sharedConnection
static property toApptentive.shared
Remove references to currently unavailable methods/properties
- Remove or comment out calls to `queryCanShowInteraction(forEvent:completion:) (this feature is currently not supported)
- Remove or comment out calls to `queryCanShowMessageCenter(completion:) (this feature is currently not supported)
- Remove or comment out calls to
dismissMessageCenter(animated:completion:)
(this feature is currently not supported) - Remove or comment out calls to
openAppStore()
(this feature is currently not supported) - Remove or comment out code that calls
logIn(withToken:completion:)
,logOut()
, orupdateToken(_:completion:)
or accesses theauthenticationFailureCallback
property (customer authentication is currently not supported) - Remove or comment out calls to
setPushProvider(_:)
,didReceiveRemoteNotification(_:fetchCompletionHandler:)
,didReceiveLocalNotification(_:from:)
,didReceiveUserNotificationResponse(_:from:withCompletionHandler:)
, andwillPresent(_:withCompletionHandler:)
(Push notification support will be restored in an upcoming release) - Remove or comment out calls to
dismissAllInteractions(animated:)
(This feature will be restored in an upcoming release)
Remove references to removed methods/properties
- Remove the custom data argument from calls to
engage(_:withCustomData:fromViewController:)
(custom event data is currently not supported) - Remove the extended and custom data arguments from calls to
engage(_:withCustomData:withExendedData:fromViewController:)
, along with calls to methods that construct extended event data - Remove code that accesses the
advertisingIdentifier
property (specific support for the advertising ID has been removed, but you can use custom person data instead) - Remove code that accesses the
appID
property (App Store ratings now exclusively use theSKStoreReviewController
class, which doesn’t require the app ID) - Remove code that accesses the
showInfoButton
property (the info button is no longer present) - Remove code that accesses the
surveyTermsAndConditions
property (Survey terms and conditions are now configured in the dashboard) - Remove code that reads the
apptentiveKey
orapptentiveSignature
properties - Remove code that accesses the
styleSheet
property - Remove code that calls the
checkSDKConfiguration()
method
Update code that set properties on ApptentiveConfiguration
apptentiveKey
andapptentiveSignature
are now passed when constructing theApptentive.AppCredentials
object passed to theregister(with:completion:)
instance method- The
logLevel
property has moved to theApptentiveLogger
object - Log messages are automatically sanitized when a debugger is not attached to the app
- The
baseURL
can be set using the designated initializer for theApptentive
object (note that this prohibits using theshared
instance ofApptentive
) - The
distributionName
anddistributionVersion
are now set on theenvironment
property of theApptentive
object - The
appID
property is no longer supported (see above) - The
showInfoButton
property is no longer supported (see above) - The
surveyTermsAndConditions
property is no longer supported (see above)