Removing the Zendesk Unity3D plugin

Apple announced in December 2019 the end of support for UIWebView API, a key component of the Zendesk Unity3D plugin. Apple also stated that app updates to the Apple App Store would not be accepted as of December 2020, which could negatively impact the plugin functionality. This deadline was recently postponed to a date to be announced.

Even though the Apple deadline has been pushed back, it’s important for developers to take action now to prevent issues with submitting app updates to the Apple App Store once this change goes into effect.

If you're still using the Zendesk Unity3D plugin, Zendesk recommends removing it safely before switching to the new Unity SDK from Zendesk. See the instructions that follow.

Removing Zendesk Unity3D plugin

  1. Before you delete the wrapper, it's a good idea to make a note of your subdomain, Application ID, and Client ID. You'll find these where you call this code:

    ZendeskSDK.ZDKConfig.Initialize(...)

    The file in which you find this code is probably attached to a GameObject in your scene, so you can remove the reference. In the same file, remove any references like:

    ZendeskSDK.ZDKConfig.Authenticate*
    void OnZendeskCallback(string results) {	ZendeskSDK.ZDKConfig.CallbackResponse (results);}
  2. Remove all of the files that the wrapper generated. These are listed in Unity3D plugin files to remove. Note that some have been marked as "Directory" for brevity. If you are using macOS, then the .bundle directories are shown as files but they are really directories.

  3. The AndroidManifest.xml in /Plugins/Android/AndroidManifest.xml is no longer required. It was used to set a theme called android:theme="@style/UnityTheme", which had the value of ZendeskSdkTheme.Light.DarkActionBar. Hopefully by following Step 1, you'll have already removed AndroidManifest.xml. However, it's possible that you added it to a different AndroidManifest.xml, so look out for the references to any of the following in your project:

    package="com.zendesk.unity.sdk"

    If you have any reference to Belvedere, then remove those. Our new SDK does not use this library.

    <provider    tools:replace="android:authorities"    android:name="com.zendesk.belvedere.BelvedereFileProvider"    android:authorities="APPLICATION_ID.belvedere.attachments"    android:exported="false"    android:grantUriPermissions="true">    <meta-data        android:name="android.support.FILE_PROVIDER_PATHS"        android:resource="@xml/belvedere_attachment_storage" /></provider>
    <provider    tools:merge="override"    tools:replace="android:authorities"    android:name="com.zendesk.belvedere.BelvedereFileProvider"    android:authorities="APPLICATION_ID.belvedere.attachments"    android:exported="false"    android:grantUriPermissions="true">    <meta-data        android:name="android.support.FILE_PROVIDER_PATHS"        android:resource="@xml/belvedere_attachment_storage" /></provider>
  4. Clean up any references to the Zendesk C# scripts in your C# code. You should have deleted these in Step 1. The classes you have have references to are:

    ZDKSettingsProviderZDKUploadProviderIOSAppearanceZenColorZDKPushZDKCreateRequestZDKRequestProviderZenJSONZDKHelpCenterContactConfigurationHelpCenterOptionsZDKUserProviderZDKErrorZDKConfigZDKRequestCreationConfigZDKRequestsZDKStringUtilZDKHelpCenterSearchZDKLoggerZDKListArticleQueryZDKHelpCenterProviderZDKAvatarProviderZDKHelpCenterDeflection

Unity3D plugin files to remove

.├── Plugins│   ├── Android│   │   ├── AndroidManifest.xml│   │   ├── android-plugin-release.aar│   │   ├── animated-vector-drawable-25.1.0.aar│   │   ├── answers-shim-0.0.6.aar│   │   ├── appcompat-v7-25.1.0.aar│   │   ├── belvedere-1.0.2.1.aar│   │   ├── converter-gson-2.1.0.jar│   │   ├── dagger-2.8.jar│   │   ├── design-25.1.0.aar│   │   ├── disklrucache-2.0.2.jar│   │   ├── gson-2.7.jar│   │   ├── java-common-1.12.jar│   │   ├── javax.inject-1.jar│   │   ├── logging-interceptor-3.5.0.jar│   │   ├── okhttp-3.5.0.jar│   │   ├── okio-1.11.0.jar│   │   ├── picasso-2.5.2.jar│   │   ├── recyclerview-v7-25.1.0.aar│   │   ├── retrofit-2.1.0.jar│   │   ├── sdk-1.11.0.1.aar│   │   ├── sdk-providers-1.11.0.1.aar│   │   ├── support-annotations-25.1.0.jar│   │   ├── support-compat-25.1.0.aar│   │   ├── support-core-ui-25.1.0.aar│   │   ├── support-core-utils-25.1.0.aar│   │   ├── support-fragment-25.1.0.aar│   │   ├── support-media-compat-25.1.0.aar│   │   ├── support-v4-25.1.0.aar│   │   ├── support-vector-drawable-25.1.0.aar│   │   └── transition-25.1.0.aar│   └── iOS│       ├── NSObject+ZDKBWJSONMatcher.h│       ├── NSObject+ZDKBWJSONMatcher.m│       ├── ZDKConfig+Private.h│       ├── ZDKHelpCenterDelegate.h│       ├── ZDKHelpCenterDelegate.m│       ├── ZendeskAppearanceBinding.m│       ├── ZendeskConfig.m│       ├── ZendeskCore.h│       ├── ZendeskCore.m│       ├── ZendeskHelpCenter.m│       ├── ZendeskJSON.h│       ├── ZendeskJSON.m│       ├── ZendeskLogger.m│       ├── ZendeskModalNavigationController.h│       ├── ZendeskModalNavigationController.m│       ├── ZendeskProviderAvatar.m│       ├── ZendeskProviderHelpCenter.m│       ├── ZendeskProviderRequest.m│       ├── ZendeskProviderSDK.framework│       │   ├── Headers│       │   │   ├── ZDKAccount.h│       │   │   ├── ZDKAccountSettings.h│       │   │   ├── ZDKAnonymousIdentity.h│       │   │   ├── ZDKAppSettings.h│       │   │   ├── ZDKAttachment.h│       │   │   ├── ZDKAttachmentCache.h│       │   │   ├── ZDKAttachmentSettings.h│       │   │   ├── ZDKAuthenticationSpace.h│       │   │   ├── ZDKAuthenticationURLProtocol.h│       │   │   ├── ZDKAvatarProvider.h│       │   │   ├── ZDKBundleUtils.h│       │   │   ├── ZDKCoding.h│       │   │   ├── ZDKComment.h│       │   │   ├── ZDKCommentWithUser.h│       │   │   ├── ZDKCommentsResponse.h│       │   │   ├── ZDKConfig.h│       │   │   ├── ZDKContactUsSettings.h│       │   │   ├── ZDKConversationsSettings.h│       │   │   ├── ZDKCreateRequest.h│       │   │   ├── ZDKCustomField.h│       │   │   ├── ZDKDateUtil.h│       │   │   ├── ZDKDeviceInfo.h│       │   │   ├── ZDKDictionaryCreatable.h│       │   │   ├── ZDKDispatcher.h│       │   │   ├── ZDKDispatcherResponse.h│       │   │   ├── ZDKETag.h│       │   │   ├── ZDKHelpCenterArticle.h│       │   │   ├── ZDKHelpCenterArticleViewModel.h│       │   │   ├── ZDKHelpCenterArticleVote.h│       │   │   ├── ZDKHelpCenterAttachment.h│       │   │   ├── ZDKHelpCenterCategory.h│       │   │   ├── ZDKHelpCenterCategoryViewModel.h│       │   │   ├── ZDKHelpCenterConversationsUIDelegate.h│       │   │   ├── ZDKHelpCenterDeflection.h│       │   │   ├── ZDKHelpCenterFlatArticle.h│       │   │   ├── ZDKHelpCenterLastSearch.h│       │   │   ├── ZDKHelpCenterOverviewContentModel.h│       │   │   ├── ZDKHelpCenterParser.h│       │   │   ├── ZDKHelpCenterProvider.h│       │   │   ├── ZDKHelpCenterSearch.h│       │   │   ├── ZDKHelpCenterSection.h│       │   │   ├── ZDKHelpCenterSectionViewModel.h│       │   │   ├── ZDKHelpCenterSessionCache.h│       │   │   ├── ZDKHelpCenterSettings.h│       │   │   ├── ZDKHelpCenterSimpleArticle.h│       │   │   ├── ZDKHelpCenterViewModel.h│       │   │   ├── ZDKIdentity.h│       │   │   ├── ZDKIdentityStorage.h│       │   │   ├── ZDKJsonUtil.h│       │   │   ├── ZDKJwtIdentity.h│       │   │   ├── ZDKKeychainWrapper.h│       │   │   ├── ZDKLocalization.h│       │   │   ├── ZDKLogger.h│       │   │   ├── ZDKMobileProvisionAnalyzer.h│       │   │   ├── ZDKNSCodingUtil.h│       │   │   ├── ZDKProvider.h│       │   │   ├── ZDKPushRegistrationProvider.h│       │   │   ├── ZDKPushRegistrationRequest.h│       │   │   ├── ZDKPushRegistrationResponse.h│       │   │   ├── ZDKReachability.h│       │   │   ├── ZDKRequest.h│       │   │   ├── ZDKRequestProvider.h│       │   │   ├── ZDKRequestStorage.h│       │   │   ├── ZDKRequestUpdates.h│       │   │   ├── ZDKRequestUpdatesProtocol.h│       │   │   ├── ZDKRequestWithAttachmentsUtil.h│       │   │   ├── ZDKRequestsResponse.h│       │   │   ├── ZDKSdkStorage.h│       │   │   ├── ZDKSettings.h│       │   │   ├── ZDKSettingsProvider.h│       │   │   ├── ZDKStringUtil.h│       │   │   ├── ZDKTicketField.h│       │   │   ├── ZDKTicketFieldOption.h│       │   │   ├── ZDKTicketFieldSystemOption.h│       │   │   ├── ZDKTicketForm.h│       │   │   ├── ZDKTicketFormsSettings.h│       │   │   ├── ZDKUploadProvider.h│       │   │   ├── ZDKUploadResponse.h│       │   │   ├── ZDKUser.h│       │   │   ├── ZDKUserField.h│       │   │   ├── ZDKUserProvider.h│       │   │   ├── ZDKValidator.h│       │   │   ├── ZendeskProviderSDK.h│       │   │   └── ZendeskSDKConstants.h│       │   ├── Info.plist│       │   ├── Modules│       │   │   └── module.modulemap│       │   ├── PrivateHeaders│       │   │   ├── ZDKAccountAuthHelper.h│       │   │   ├── ZDKErrorParser.h│       │   │   ├── ZDKLoginRequest.h│       │   │   ├── ZDKLoginRequestPartsFactory.h│       │   │   ├── ZDKRequestExecutor.h│       │   │   ├── ZDKRequestHelper.h│       │   │   ├── ZDKRequestManager.h│       │   │   ├── ZDKRequestQueue.h│       │   │   ├── ZDKRequestSession.h│       │   │   ├── ZDKRequestSessionFactory.h│       │   │   ├── ZDKRequestSessionLoggedIn.h│       │   │   ├── ZDKRequestSessionLoggingIn.h│       │   │   └── ZDKRequestSessionNotLoggedIn.h│       │   └── ZendeskProviderSDK│       ├── ZendeskProviderSettings.m│       ├── ZendeskProviderUpload.m│       ├── ZendeskProviderUser.m│       ├── ZendeskPush.m│       ├── ZendeskRequests.m│       ├── ZendeskSDK│       │   ├── ZDKAPIDispatcher.h│       │   ├── ZDKArticleView.h│       │   ├── ZDKArticleViewController.h│       │   ├── ZDKAttachmentCollectionViewCell.h│       │   ├── ZDKAttachmentView.h│       │   ├── ZDKAttachmentViewController.h│       │   ├── ZDKAttachmentViewDataSource.h│       │   ├── ZDKBWJSONMatcher.h│       │   ├── ZDKBWJSONMatcher.m│       │   ├── ZDKBWJSONValueObject.h│       │   ├── ZDKCommentInputView.h│       │   ├── ZDKCommentInputViewController.h│       │   ├── ZDKCommentsTableViewController.h│       │   ├── ZDKCommentsTableViewDataSource.h│       │   ├── ZDKCommentsTableViewDelegate.h│       │   ├── ZDKCommentsViewController.h│       │   ├── ZDKCreateRequestUIDelegate.h│       │   ├── ZDKCreateRequestView.h│       │   ├── ZDKCreateRequestViewController.h│       │   ├── ZDKDispatcherDelegate.h│       │   ├── ZDKHelpCenter.h│       │   ├── ZDKHelpCenterArticlesByLabelDataSource.h│       │   ├── ZDKHelpCenterArticlesDataSource.h│       │   ├── ZDKHelpCenterAttachmentsDataSource.h│       │   ├── ZDKHelpCenterCategoriesDataSource.h│       │   ├── ZDKHelpCenterDataSource.h│       │   ├── ZDKHelpCenterErrorCodes.h│       │   ├── ZDKHelpCenterOverviewController.h│       │   ├── ZDKHelpCenterSearchDataSource.h│       │   ├── ZDKHelpCenterSectionsDataSource.h│       │   ├── ZDKHelpCenterTableDelegate.h│       │   ├── ZDKImageViewerViewController.h│       │   ├── ZDKPushUtil.h│       │   ├── ZDKRequestCommentAttachmentLoadingTableCell.h│       │   ├── ZDKRequestCommentAttachmentTableCell.h│       │   ├── ZDKRequestCommentTableCell.h│       │   ├── ZDKRequestListTable.h│       │   ├── ZDKRequestListTableCell.h│       │   ├── ZDKRequestListViewController.h│       │   ├── ZDKRequests.h│       │   ├── ZDKRotationForwarding.h│       │   ├── ZDKSpinnerDelegate.h│       │   ├── ZDKSupportAttachmentCell.h│       │   ├── ZDKTheme.h│       │   ├── ZDKToast.h│       │   ├── ZDKToastStyle.h│       │   ├── ZDKToastView.h│       │   ├── ZDKUIActivityView.h│       │   ├── ZDKUIImageScrollView.h│       │   ├── ZDKUILoadingView.h│       │   ├── ZDKUITextView.h│       │   ├── ZDKUITextViewDelegate.h│       │   ├── ZDKUIUtil.h│       │   └── ZDKUIViewController.h│       ├── ZendeskSDK.bundle│       │   ├── Info.plist│       │   ├── ModelIdentifier.plist│       │   ├── ZDKCreateRequestViewController.nib│       │   ├── ZDKHelpCenterArticleRatingView.nib│       │   │   ├── objects-11.0+.nib│       │   │   └── runtime.nib│       │   ├── ZDKHelpCenterOverviewArticleTableViewCell.nib│       │   │   ├── objects-11.0+.nib│       │   │   └── runtime.nib│       │   ├── ZDKHelpCenterOverviewController.nib│       │   ├── ZDKHelpCenterOverviewFooterView.nib│       │   ├── ZDKHelpCenterOverviewHeaderView.nib│       │   │   ├── objects-11.0+.nib│       │   │   └── runtime.nib│       │   ├── ZDKHelpCenterOverviewLoadingTableViewCell.nib│       │   ├── ZDKHelpCenterOverviewSectionTableViewCell.nib│       │   │   ├── objects-11.0+.nib│       │   │   └── runtime.nib│       │   ├── ZDKHelpCenterOverviewSeeAllTableViewCell.nib│       │   │   ├── objects-11.0+.nib│       │   │   └── runtime.nib│       │   ├── ZDKHelpCenterOverviewSpacerTableViewCell.nib│       │   ├── ZDKHelpCenterSearchResultTableViewCell.nib│       │   ├── ZDKHelpCenterSearchResultViewController.nib│       │   ├── btnAttach.png│       │   ├── btnAttach@2x.png│       │   ├── btnAttach@3x.png│       │   ├── help_center_article_style.css│       │   ├── icoAdd.png│       │   ├── icoAdd@2x.png│       │   ├── icoAdd@3x.png│       │   ├── icoAttach.png│       │   ├── icoAttach@2x.png│       │   ├── icoAttach@3x.png│       │   ├── icoClose.png│       │   ├── icoClose@2x.png│       │   ├── icoClose@3x.png│       │   ├── icoDown.png│       │   ├── icoDown@2x.png│       │   ├── icoDown@3x.png│       │   ├── icoVoteDown.png│       │   ├── icoVoteDown@2x.png│       │   ├── icoVoteDown@3x.png│       │   ├── icoVoteUp.png│       │   ├── icoVoteUp@2x.png│       │   ├── icoVoteUp@3x.png│       │   ├── ico_coversations.png│       │   ├── ico_coversations@2x.png│       │   ├── ico_coversations@3x.png│       │   ├── ico_newticket.png│       │   ├── ico_newticket@2x.png│       │   └── ico_newticket@3x.png│       ├── ZendeskSDK.framework│       │   ├── Headers│       │   │   ├── ZDKArticleView.h│       │   │   ├── ZDKArticleViewController.h│       │   │   ├── ZDKAttachmentCollectionViewCell.h│       │   │   ├── ZDKAttachmentView.h│       │   │   ├── ZDKAttachmentViewDataSource.h│       │   │   ├── ZDKCommentInputView.h│       │   │   ├── ZDKCommentInputViewController.h│       │   │   ├── ZDKCommentsTableViewController.h│       │   │   ├── ZDKCommentsTableViewDataSource.h│       │   │   ├── ZDKCommentsTableViewDelegate.h│       │   │   ├── ZDKCommentsViewController.h│       │   │   ├── ZDKCreateRequestUIDelegate.h│       │   │   ├── ZDKCreateRequestView.h│       │   │   ├── ZDKCreateRequestViewController.h│       │   │   ├── ZDKHelpCenter.h│       │   │   ├── ZDKHelpCenterAttachmentsDataSource.h│       │   │   ├── ZDKHelpCenterDataSource.h│       │   │   ├── ZDKHelpCenterErrorCodes.h│       │   │   ├── ZDKHelpCenterOverviewController.h│       │   │   ├── ZDKImageViewerViewController.h│       │   │   ├── ZDKPushUtil.h│       │   │   ├── ZDKRequestCommentAttachmentLoadingTableCell.h│       │   │   ├── ZDKRequestCommentTableCell.h│       │   │   ├── ZDKRequestListTable.h│       │   │   ├── ZDKRequestListTableCell.h│       │   │   ├── ZDKRequestListViewController.h│       │   │   ├── ZDKRequests.h│       │   │   ├── ZDKRotationForwarding.h│       │   │   ├── ZDKSpinnerDelegate.h│       │   │   ├── ZDKSupportAttachmentCell.h│       │   │   ├── ZDKTheme.h│       │   │   ├── ZDKToast.h│       │   │   ├── ZDKToastStyle.h│       │   │   ├── ZDKToastView.h│       │   │   ├── ZDKUIActivityView.h│       │   │   ├── ZDKUIImageScrollView.h│       │   │   ├── ZDKUILoadingView.h│       │   │   ├── ZDKUITextViewDelegate.h│       │   │   ├── ZDKUIUtil.h│       │   │   ├── ZDKUIViewController.h│       │   │   ├── Zendesk.h│       │   │   └── ZendeskSDK.h│       │   ├── Info.plist│       │   ├── Modules│       │   │   └── module.modulemap│       │   ├── PrivateHeaders│       │   │   ├── ZDKAlertAction.h│       │   │   ├── ZDKAlertController.h│       │   │   └── ZDKUITextView.h│       │   └── ZendeskSDK│       ├── ZendeskSDK.h│       ├── ZendeskSDKConstants.h│       ├── ZendeskSDKStrings.bundle│       │   ├── Info.plist│       │   ├── da.lproj│       │   │   └── Localizable.strings│       │   ├── de.lproj│       │   │   └── Localizable.strings│       │   ├── en-GB.lproj│       │   │   └── Localizable.strings│       │   ├── en.lproj│       │   │   └── Localizable.strings│       │   ├── es.lproj│       │   │   └── Localizable.strings│       │   ├── fi.lproj│       │   │   └── Localizable.strings│       │   ├── fr.lproj│       │   │   └── Localizable.strings│       │   ├── it.lproj│       │   │   └── Localizable.strings│       │   ├── ja.lproj│       │   │   └── Localizable.strings│       │   ├── ko.lproj│       │   │   └── Localizable.strings│       │   ├── nb.lproj│       │   │   └── Localizable.strings│       │   ├── nl.lproj│       │   │   └── Localizable.strings│       │   ├── pl.lproj│       │   │   └── Localizable.strings│       │   ├── pt.lproj│       │   │   └── Localizable.strings│       │   ├── ru.lproj│       │   │   └── Localizable.strings│       │   ├── sv.lproj│       │   │   └── Localizable.strings│       │   ├── tr.lproj│       │   │   └── Localizable.strings│       │   ├── zh-Hans.lproj│       │   │   └── Localizable.strings│       │   └── zh-Hant.lproj│       │       └── Localizable.strings│       └── ZendeskStringUtils.m├── Zendesk│   └── Scripts│       ├── ZDKAvatarProvider.cs│       ├── ZDKBaseComponent.cs│       ├── ZDKConfig.cs│       ├── ZDKError.cs│       ├── ZDKHelpCenter.cs│       ├── ZDKHelpCenterDeflection.cs│       ├── ZDKHelpCenterProvider.cs│       ├── ZDKHelpCenterSearch.cs│       ├── ZDKLogger.cs│       ├── ZDKPush.cs│       ├── ZDKRequestProvider.cs│       ├── ZDKRequests.cs│       ├── ZDKSettingsProvider.cs│       ├── ZDKStringUtil.cs│       ├── ZDKUploadProvider.cs│       ├── ZDKUserProvider.cs│       ├── ZenAppearance.cs│       ├── ZenColor.cs│       └── ZenJSON.cs└── sdk_unity_plugin_files_to_remove.txt
40 directories, 345 files