お客様がサポートを必要とする場合、最も避けたいのはアプリから離れることです。ブラウザを開いてサポートページを検索したり、メールを掘り下げてチケットの更新を探したりすることは、顧客体験を損なう摩擦を生み出します。そのため、ZendeskモバイルSDKを使用して、サポートをiOSアプリに直接組み込むことが、現代のカスタマーサービスにとって不可欠になっています。
このガイドでは、ZendeskのiOS SDKの統合を最初から最後まで説明します。新しいアプリを構築する場合でも、既存のアプリにサポートを追加する場合でも、アプリケーションでカスタマーメッセージングを機能させるための正確な手順を学習できます。モバイルサポートにAIを活用した応答を追加したいチームのために、eesel AIがZendeskモバイルSDKと連携してどのように機能するかについても説明します。

必要なもの
始める前に、次のものが必要です。
- Zendesk SupportまたはSuiteプラン
- Xcode 11.4以降
- iOS 14以降をターゲットとするiOSアプリ
- チャネルキーを取得するためのZendeskアカウントへの管理者アクセス
- Swift 5.2.2+またはObjective-Cプロジェクト
このSDKはSwiftとObjective-Cの両方をサポートしているため、アプリで使用する言語に関係なく統合できます。Swift Package Managerは最新のプロジェクトに最適ですが、プロジェクトがすでに依存している場合は、CocoaPodsとCarthageも引き続き利用できます。
ステップ1:ニーズに合ったZendesk SDKを選択する
多くの開発者は、ZendeskがiOS用の複数のSDKを提供していることに気づいていません。間違ったものを選択すると、後で問題が発生する可能性があるため、事前に違いを理解しておく価値があります。
Zendesk Messaging SDK(新規プロジェクトに推奨)
これはZendeskの最新のSDKであり、新しい統合に使用する必要があります。ユーザーが時間の経過とともに継続的な会話を行うことができる、現代的なメッセージングエクスペリエンスを提供します。Messaging SDKは積極的にメンテナンスされており、最新バージョン(2.37.0)は2026年1月にリリースされました。
主な機能は次のとおりです。
- 複数会話のサポート(ユーザーは複数の進行中の会話を持つことができます)
- カルーセル、フォーム、ファイル添付を含むリッチメッセージング
- リアルタイム更新のプッシュ通知サポート
- ビジネスからのプロアクティブなメッセージング
- キューの位置を示す待ち時間バナー
Classic Support SDK(レガシー/アーカイブ)
**重要:**従来のZendesk SDK for iOSは、2024年11月23日にアーカイブされました。GitHubリポジトリは現在読み取り専用です。現在このSDKを使用している場合は、Messaging SDKへの移行を計画する必要があります。詳細な手順については、Zendeskの移行ガイドを参照してください。
Sunshine Conversations SDK(高度なユースケース)
高度にカスタマイズされたメッセージングエクスペリエンスを必要とするアプリの場合、Sunshine Conversations(以前のSmooch)はより柔軟性を提供します。カスタムUI実装や複雑な会話ワークフローなどの高度な機能をサポートしています。ただし、ほとんどの標準的なサポートユースケースでは、Messaging SDKの方が適しています。
ステップ2:SDKをXcodeプロジェクトに追加する
Zendesk Messaging SDKは、4つのインストール方法をサポートしています。Swift Package Managerは、最新のiOS開発に推奨されるアプローチです。
Swift Package Manager(推奨)
- Xcodeで、File > Swift Packages > Add Package Dependencyを選択します。
- リポジトリURLを入力します:
https://github.com/zendesk/sdk_messaging_ios/ - Xcodeのプロンプトに従って、ZendeskMessagingSDKを依存関係として追加します。
Xcodeは、必要なすべての依存関係を自動的に解決してダウンロードします。
CocoaPods
Podfileに次の行を追加します。
pod 'ZendeskSDKMessaging'
次に、pod installを実行します。
Carthage
Cartfileに次を追加します。
github "zendesk/sdk_messaging_ios"
carthage update --use-xcframeworksを実行し、フレームワークをプロジェクトにドラッグします。
必要な権限
カメラ、マイク、およびフォトライブラリへのアクセスを有効にするには、これらのキーをアプリのInfo.plistに追加します。
NSCameraUsageDescription:画像とビデオのカメラアクセスを許可しますNSMicrophoneUsageDescription:ビデオキャプチャのマイクアクセスを許可しますNSPhotoLibraryUsageDescription:フォトライブラリの読み取り/書き込みアクセスを許可します

ステップ3:アプリでSDKを初期化する
SDKをプロジェクトに追加したら、チャネルキーを使用して初期化する必要があります。
チャネルキーの取得
チャネルキーは、Zendesk管理センターで生成されます。
- Zendesk管理センターにログインします。
- チャネル > メッセージングに移動します。
- チャネルを追加をクリックし、iOSを選択します。
- プロンプトに従ってチャネルキーを生成します。

初期化コード
これらのインポートをAppDelegateまたはメインアプリファイルに追加します。
Swift:
import ZendeskSDKMessaging
import ZendeskSDK
Objective-C:
アプリの起動時にSDKを初期化します。
Swift:
Zendesk.initialize(
withChannelKey: "<your_channel_key>",
messagingFactory: DefaultMessagingFactory()
) { result in
if case let .failure(error) = result {
print("Messaging did not initialize. Error: \(error.localizedDescription)")
}
}
Objective-C:
[Zendesk initializeWithChannelKey:@"<your_channel_key>"
messagingFactory:[[ZDKDefaultMessagingFactory alloc] init]
completionHandler:^(Zendesk * _Nullable zendesk, NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Zendesk did not initialize. Error: %@", error.localizedDescription);
}
}];
SDKのサイズは、XCFrameworkのダウンロードで約7.5 MBですが、アプリのサイズに対する最終的な影響は、アプリの削減とリンカーの最適化により小さくなる可能性があります。
ステップ4:ユーザー認証を設定する
SDKは、ユースケースに応じて2つの認証方法をサポートしています。
匿名認証
アプリにログインしていないユーザーには、匿名認証を使用します。
Swift:
let identity = Identity.createAnonymous()
Zendesk.instance?.setIdentity(identity)
これにより、デバイスごとにZendeskに新しいユーザーレコードが作成されます。
JWT認証
認証されたユーザーには、JWTを使用してIDを検証します。
Swift:
let identity = Identity.createJwt(token: "<your_jwt_token>")
Zendesk.instance?.setIdentity(identity)
JWT認証により、ユーザーは複数のデバイスで会話履歴にアクセスでき、なりすましを防ぐことができます。SDKバージョン2.34.0以降では、トークンの更新をシームレスに処理するためのAuthenticationDelegateもあります。
ステップ5:メッセージングインターフェイスを表示する
初期化されると、アプリの任意の場所にメッセージングインターフェイスを表示できます。
基本的なプレゼンテーション
Swift:
if let viewController = Zendesk.instance?.messaging?.messagingViewController() {
self.navigationController?.show(viewController, sender: self)
}
Objective-C:
UIViewController *viewController = [Zendesk.instance.messaging messagingViewController];
if (viewController != NULL) {
[self.navigationController showViewController:viewController sender:self];
}
モーダルプレゼンテーション
ナビゲーションスタックにプッシュする代わりに、モーダルエクスペリエンスを実現するには:
Swift:
if let viewController = Zendesk.instance?.messaging?.messagingViewController() {
let navigationController = UINavigationController(rootViewController: viewController)
navigationController.modalPresentationStyle = .fullScreen
present(navigationController, animated: true)
}
デフォルトでは、SDKは最後にアクティブだった会話に移動します。アカウントで複数会話が有効になっている場合、ユーザーは複数の進行中の会話を一度に管理できます。
ステップ6:UIと動作をカスタマイズする
SDKは、アプリのブランディングに合わせていくつかのカスタマイズオプションを提供します。
テーマカラー
Zendesk管理センターから色をカスタマイズするか、プログラムでより詳細に制御できます。プライマリカラーを次のように設定します。
CommonTheme.currentTheme.primaryColor = .cyan
ナビゲーションバーのカスタマイズ
ナビゲーションバーのスタイル設定には、標準のUIAppearanceプロキシを使用します。
UINavigationBar.appearance().barTintColor = .cyan
プレチャットフォームとボット構成
会話を開始する前にユーザー情報を収集するために、プレチャットフォームを構成できます。Zendesk管理センターからフォームを設定するか、SDKの構成オプションを使用してエクスペリエンスをカスタマイズします。
iOSの既知の制限事項
iOSでのこれらのカスタマイズの制限事項に注意してください。
- Answer Botのアバターは変更できません
- 右側のナビゲーションバーボタンはオーバーライドできません
- ナビゲーションタイトルの色はカスタマイズオプションが限られています
- チャットテキストのフォントは変更できません
これらの制限事項は、ZendeskのiOSドキュメントに記載されており、iOSの実装全体で一貫しています。
一般的な問題とトラブルシューティング
開発者が頻繁に遭遇する問題の解決策を次に示します。
初期化の失敗
SDKの初期化に失敗した場合:
- チャネルキーが正しく、アプリのバンドルIDと一致していることを確認します
- Zendeskアカウントでメッセージングが有効になっていることを確認します
- 正しいリージョンエンドポイント(米国またはEU)を使用していることを確認します
プッシュ通知の問題
プッシュ通知には慎重な設定が必要です。
- .p12証明書をZendesk管理センターにアップロードしたことを確認します
- APS Environmentエンタイトルメントが「production」(開発ではない)に設定されていることを確認します
- プロビジョニングプロファイルにプッシュ通知機能が含まれていることを確認します
- サンドボックス専用ではなく、サンドボックスと本番環境の組み合わせ証明書を使用していることを確認します
認証エラー
JWT認証の問題は通常、次の原因で発生します。
- トークンの有効期限切れ:AuthenticationDelegateを使用してトークンの更新を実装します
- トークン形式が正しくありません:JWTがZendeskの必要なクレームに従っていることを確認します
- クロックのずれ:サーバーとデバイスの時刻が同期されていることを確認します
メモリとパフォーマンス
SDKは軽量ですが、次のことを行う必要があります。
- アプリの起動時に1回初期化し、繰り返し初期化しないでください
- メモリ警告を適切に処理します
- アプリがiOS 14をサポートしている場合は、古いデバイスでテストします
eesel AIでモバイルサポートを強化する
ZendeskモバイルSDKはアプリ内カスタマーサービスの基盤を提供しますが、多くのチームは、人的介入なしに一般的な質問を処理するためにインテリジェントな自動化を追加したいと考えています。そこで、私たちの出番です。

eesel AIでは、Zendeskの設定と連携して応答を自動化し、偏向率を向上させるAIプラットフォームを構築しました。チケットをルーティングするだけでなく、当社のAIは、Zendesk Guideの記事だけでなく、ナレッジベース全体から情報を取得して、一般的な問題を解決できます。
チームがZendeskモバイルSDK統合とともに当社をどのように使用しているかを次に示します。
-
複数のナレッジソースを接続する:Confluence、Googleドキュメント、Notionなど、ドキュメントが存在する他のプラットフォームから回答を取得するため、情報が分散している場合でも、顧客は完全な回答を得ることができます。
-
ライブ配信前にテストする:シミュレーションモードを使用すると、顧客に表示する前に、過去のチケットに対してAI応答をテストして、偏向率を予測できます。
-
段階的なロールアウト:レビューのためにAIが下書きを作成することから始め、自信が高まるにつれて完全な自動化に拡張します。
すでにZendeskモバイルSDKの統合を計画している場合は、AIを活用した応答を追加することで、人間のエージェントに到達するチケットの量を減らすことができます。Zendesk統合をチェックして、その仕組みを確認してください。
今すぐより良いモバイルサポートの構築を開始する
ZendeskモバイルSDKをiOSアプリに統合することは、手順を知っていれば簡単です。重要なのは、適切なSDK(新しいプロジェクトの場合はMessaging SDK)を選択し、管理センターからチャネルキーを取得し、ユースケースに応じて認証を適切に処理することです。
SDKを使用すると、最小限の開発労力でプロフェッショナルなサポートエクスペリエンスを実現できます。また、AIを活用した自動化でさらに一歩進めたい場合は、eesel AIがより多くのチケットを偏向させ、問題をより迅速に解決するのに役立ちます。
始める準備はできましたか?最新のSDKバージョンと詳細なAPIリファレンスについては、Zendesk開発者ドキュメントにアクセスしてください。
よくある質問
Share this article

Article by
Stevia Putri
Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.