Native iOS
This page describes how to migrate your application from using PinchSDK to Kettle.
Before you begin
This page assumes that you fulfill the requirements to implement Kettle.
The iOS target has been increased from 9.0 to 11.0. Everything below 11.0 is marked as obsolete by Apple.
Replace references to PinchSDK
In your applications Podfile
, remove the following pods:
pod 'PinchSDK', 'x.x.x'
pod 'PinchSDKLegacy', 'x.x.x'
pod 'PinchSDKLegacyBluetooth', 'x.x.x'
Add the following pod:
pod 'KettleKit', '1.3.0'
Replace imports
Replace all instances of:
import PinchSDK
With:
import KettleKit
Replace API calls
PinchSDK.initialize
let kettleConfig = KettleConfig.default()
kettleConfig.developmentApiKey = "<DEVELOPMENT-API-KEY>"
kettleConfig.productionApiKey = "<PRODUCTION-API-KEY>"
Kettle.prepare(config, launchOptions: launchOptions)
Additionally, the configuration has the following fields available:
inProduction
: Production status for the application. This value is used by Kettle to determine if the application is in production. If this value is not set, Kettle will set this value based on the application build scheme.developmentLogLevel
: Log level used for development apps.productionLogLevel
: Log level used for production apps.
Consents
All instances of fully qualified consents should be replaced from and to:
PinchSDK.Consent.surveys
toKettleConsent.surveys
PinchSDK.Consent.analytics
toKettleConsent.analytics
PinchSDK.Consent.campaigns
toKettleConsent.campaigns
PinchSDK.Consent.ads
toKettleConsent.ads
PinchSDK.grant
Kettle.shared.grant(consents: [.ads, .analytics, .campaigns, .ads])
PinchSDK.revoke
Kettle.shared.revoke(consents: [.ads, .analytics, .campaigns, .ads])
PinchSDK.grantedConsents
Kettle.shared.grantedConsents
PinchSDK.start
Kettle.shared.start(with: [.bluetooth, .location, .activity])
PinchSDK.stop
Kettle.shared.stop(with: [.bluetooth, .location, .activity])
PinchSDK.isTracking
let started: Bool = Kettle.shared.started
PinchSDK.messagingId
This method was used to either retrieve the internal identifier assigned by Pinch, set an external identifier or send push tokens. This method is now obsolete and has been replaced by three variables, responsible for each part.
// send push token
Kettle.shared.pushToken = "<PUSH-TOKEN>"
// your identifier for the user
Kettle.shared.externalId = "<EXTERNAL-IDENTIFIER>>"
// retrieve identifier assigned by Kettle
let identifier: String = Kettle.shared.identifier
PinchSDK.privacyTermsUrl
let privacyTermsUrl: String = Kettle.shared.privacyTermsUrl
PinchSDK.getPrivacyDashboard
let privacyDashboardUrl: String = Kettle.shared.privacyDashboardUrl
PinchSDK.deleteCollectedData
Kettle.shared.deleteCollectedData() { dataDeleted in
if dataDeleted {
...
}
}
PinchSDK.requestBluetoothPermission
Kettle.shared.requestBluetoothPermission()
PinchSDK.sendDemographicProfile
No migration path available at this time.
PinchSDK.setMetadata
let type = "name"
var metadata: [String : AnyHashable] = [:]
metadata["nick_name"] = "nick"
Kettle.shared.setMetadata(type: type, metadata: metadata)
PinchSDK.addCustomData
let type = "order"
var event: [String : AnyHashable] = [:]
event["orderId"] = 12
Kettle.shared.addCustomEvent(type: type, event: event)
PinchSDK.getGender
No migration path available at this time.
PinchSDK.adid
This method is obsolete and has been removed.