> ## Documentation Index
> Fetch the complete documentation index at: https://moengage-sdk-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Migration to SDK version 9.0.0

We have made some class name updates in SDK version 9.0.0 and if you are someone who was using an 8.2.0 and above version of our SDK and planning to move to version 9.0.0 or above, here are the changes to be made while migrating.

# Initialization Method Changes

We have updated the initialization method of SDK with SDKConfig as the required parameter and sdkState as an optional parameter.

### Deprecated methods

<CodeGroup>
  ```swift file name wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
  let sdkConfig = MOSDKConfig(withAppID: "YOUR Workspace ID")
  #if DEBUG
  	MoEngage.sharedInstance().initializeDefaultTestInstance(with: sdkConfig, andLaunchOptions: launchOptions)
  #else
  	MoEngage.sharedInstance().initializeDefaultLiveInstance(with: sdkConfig, andLaunchOptions: launchOptions)
  #endif
  ```

  ```objective-c Objective C wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
  MOSDKConfig* sdkConfig = [[MOSDKConfig alloc] initWithAppID:@"YOUR Workspace ID"];
  #ifdef DEBUG
     [[MoEngage sharedInstance] initializeDefaultTestInstanceWithConfig:sdkConfig andLaunchOptions:launchOptions];
  #else
     [[MoEngage sharedInstance] initializeDefaultLiveInstanceWithConfig:sdkConfig andLaunchOptions:launchOptions];
  #endif
  ```
</CodeGroup>

For information on the new initialization methods, refer to this [link](/developer-guide/ios-sdk/sdk-integration/basic/sdk-initialization).

# Setting Region/Data Center

MoEngageDataCenter: DataCenter class name has been updated in the SDK version `9.0.0`. Following are the existing ones used in the SDK version in `8.2.0` and above.

| SDK Version 8.2.0 | SDK Version 9.0.0  |
| :---------------- | :----------------- |
| MODataCenter      | MoEngageDataCenter |

For information on the new DataCenter value, refer to this [link](/developer-guide/ios-sdk/sdk-integration/basic/data-center).

# Install/Update differentiation

| SDK Version 8.x.x                             | SDK Version 9.0.0                                       |
| :-------------------------------------------- | :------------------------------------------------------ |
| MoEngage.sharedInstance().appStatus(.install) | MoEngageSDKAnalytics.sharedInstance.appStatus(.install) |

For information on the new DataCenter value, refer to this [document](/developer-guide/ios-sdk/data-tracking/basic/install-update-differentiation).

# Analytics:

From SDK version `9.0.0`, we have updated methods related to Analytics. Refer to the table below to use the updated one.

| SDK Version 8.x.x | SDK Version 9.0.0    |
| :---------------- | :------------------- |
| MOAnalytics       | MoEngageSDKAnalytics |

For information on tracking user attributes methods, refer to this [document](/developer-guide/ios-sdk/data-tracking/basic/tracking-events).

# Inapps

From SDK version `9.0.0`, we have updated methods related to Inapps. Refer to the table below to use the updated one.

| SDK Version 8.x.x                                                                                                                                          | SDK Version 9.0.0                                                                                                                                                                       |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MOInapp                                                                                                                                                    | MoEngageSDKInApp                                                                                                                                                                        |
| MOInApp.sharedInstance().showCampaign()                                                                                                                    | MoEngageSDKInApp.sharedInstance.showInApp()                                                                                                                                             |
| MOInApp.sharedInstance().showNudge(at: NudgePositionTop)                                                                                                   | MoEngageSDKInApp.sharedInstance.showNudge(atPosition: NudgePositionTop)                                                                                                                 |
| MOInAppNativeDelegate                                                                                                                                      | MoEngageInAppNativeDelegate                                                                                                                                                             |
| func inAppShown(withCampaignInfoinappCampaign: MOInAppCampaign, foraccountMeta: MOAccountMeta)                                                             | func inAppShown(withCampaignInfoinappCampaign: MoEngageInAppCampaign, forAccountMetaaccountMeta: MoEngageAccountMeta)                                                                   |
| `func inAppDismissed(withCampaignInfoinappCampaign: MOInAppCampaign, foraccountMeta: MOAccountMeta)`                                                       | `func inAppDismissed(withCampaignInfoinappCampaign: MoEngageInAppCampaign,forAccountMetaaccountMeta: MoEngageAccountMeta)`                                                              |
| `func inAppClicked(withCampaignInfoinappCampaign: MOInAppCampaign, andCustomActionInfocustomAction: MOInAppAction, foraccountMeta: MOAccountMeta)`         | `func inAppClicked(withCampaignInfoinappCampaign: MoEngageInAppCampaign, andCustomActionInfocustomAction: MoEngageInAppAction, forAccountMetaaccountMeta: MoEngageAccountMeta)`         |
| `func inAppClicked(withCampaignInfoinappCampaign: MOInAppCampaign, andNavigationActionInfonavigationAction: MOInAppAction, foraccountMeta: MOAccountMeta)` | `func inAppClicked(withCampaignInfoinappCampaign: MoEngageInAppCampaign, andNavigationActionInfonavigationAction: MoEngageInAppAction, forAccountMetaaccountMeta: MoEngageAccountMeta)` |
| `func selfHandledInAppTriggered(withInfoinappCampaign: MOInAppSelfHandledCampaign, foraccountMeta: MOAccountMeta)`                                         | `func selfHandledInAppTriggered(withInfoinappCampaign: MoEngageInAppSelfHandledCampaign, forAccountMetaaccountMeta: MoEngageAccountMeta)`                                               |

For more details, refer to the [InApp Native developer documentation](/developer-guide/ios-sdk/in-app-messages/in-app-nativ).

# Cards

From SDK version `9.0.0`, we have updated methods related to Cards. Refer to the table below to use the updated one.

| SDK Version 8.x.x                                                                        | SDK Version 9.0.0                                                                              |
| :--------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- |
| MOCards                                                                                  | MoEngageSDKCards                                                                               |
| MOCardsDelegate                                                                          | MoEngageCardsDelegate                                                                          |
| MOCardsViewControllerDelegate                                                            | MoEngageCardsDelegate                                                                          |
| `@objc optional func cardsSyncedSuccessfully(forAccountMeta accountMeta: MOAccountMeta)` | `@objc optional func cardsSyncedSuccessfully(forAccountMeta accountMeta: MoEngageAccountMeta)` |

# Push Notification

From SDK version `9.0.0`, we have updated methods related to Push Notifications. Refer to the table below to use the updated one.

| SDK Version 8.x.x                                                                                                        | SDK Version 9.0.0                                                                                                                 |
| :----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |
| MORichNotification                                                                                                       | MoEngageSDKRichNotification                                                                                                       |
| `MoEngage.sharedInstance().registerForRemoteNotification(withCategories: nil, withUserNotificationCenterDelegate: self)` | `MoEngageSDKMessaging.sharedInstance.registerForRemoteNotification(withCategories: nil, andUserNotificationCenterDelegate: self)` |
| `MoEngage.sharedInstance().setPushToken(deviceToken)`                                                                    | `MoEngageSDKMessaging.sharedInstance.setPushToken(deviceToken)`                                                                   |
| `MoEngage.sharedInstance().didFailToRegisterForPush()`                                                                   | `MoEngageSDKMessaging.sharedInstance.didFailToRegisterForPush()`                                                                  |
| `MoEngage.sharedInstance().userNotificationCenter(center, didReceive: response)`                                         | `MoEngageSDKMessaging.sharedInstance.userNotificationCenter(center, didReceive: response)`                                        |
| `MoEngage.sharedInstance().didReceieveNotificationinApplication(application, withInfo: userInfo)`                        | `MoEngageSDKMessaging.sharedInstance.didReceieveNotification(inApplication: application, withInfo: userInfo)`                     |
| `MoEngage.sharedInstance().setDisableBadgeReset(true)`                                                                   | `MoEngageSDKMessaging.sharedInstance.disableBadgeReset(true)`                                                                     |
| `MOMessaging.sharedInstance.setMessagingDelegate(self)`                                                                  | `MoEngageSDKMessaging.sharedInstance.setMessagingDelegate(self)`                                                                  |

# RealTimeTrigger:

From SDK version `9.0.0`, we have updated methods related to RealTime Trigger. Refer to the table below to use the updated one.

| SDK Version 8.x.x | SDK Version 9.0.0          |
| :---------------- | :------------------------- |
| MORealTimeTrigger | MoEngageSDKRealTimeTrigger |

For more details, refer to [Real-Time Triggers.](/developer-guide/ios-sdk/push/optional/real-time-triggers)

# Location Triggered

From SDK version `9.0.0`, we have updated methods related to Location Trigger. Refer to the table below to use the updated one.

| SDK Version 8.x.x                                    | SDK Version 9.0.0                                              |
| :--------------------------------------------------- | :------------------------------------------------------------- |
| MOGeofence                                           | MoEngageSDKGeofence                                            |
| `MOGeofenceHandler.sharedInstance().delegate = self` | `MoEngageSDKGeofence.sharedInstance.setGeofenceDelegate(self)` |

For more info on the Geofence feature, refer to our documentation [here.](/developer-guide/ios-sdk/push/optional/location-triggered)

# Inbox

| SDK Version 8.x.x                                                                                                                                                                                                                                                                      | SDK Version 9.0.0                                                                                                                                                                                                                                                                                        |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MOInbox                                                                                                                                                                                                                                                                                | MoEngageSDKInbox                                                                                                                                                                                                                                                                                         |
| MOInboxViewController                                                                                                                                                                                                                                                                  | MoEngageInboxViewController                                                                                                                                                                                                                                                                              |
| `func getInboxViewController(withUIConfiguration uiConfig: MOInboxUIConfiguration? = nil, withInboxWithControllerDelegate delegate: MOInboxViewControllerDelegate? = nil, forAppID appID: String? = nil, withCompletionBlock completionBlock: @escaping (MOInboxViewController?)->())` | `func getInboxViewController(withUIConfiguration uiConfig: MoEngageInboxUIConfiguration? = nil, withInboxWithControllerDelegate delegate: MoEngageInboxViewControllerDelegate? = nil, forAppID appID: String? = nil, withCompletionBlock completionBlock: @escaping (MoEngageInboxViewController?)->())` |

For more information on the Geofence feature, refer to this [document.](/developer-guide/ios-sdk/push/basic/actionable-notifications)
