

This document provides reference guidance for cases where the previous Multi-app feature is already in use and the existing app settings must be preserved.
The Multi-app feature that registered multiple platform information under a single Native app key is no longer supported. Existing Multi-app settings (Multi-package, Multi-bundle, Multi-store) can continue to be used only for app keys that already have Multi-app permission, but note that once such a key is deleted, the Multi-app feature cannot be used again.
The Multi App is a function that allows sharing a native app key in multiple native apps. Using the multi-app, multiple packages or bundle IDs can be set in a native app key. Use cases are the following.
| Requirement | Functions of multi-app |
|---|---|
| The service provides multiple native apps with one integrated membership system. | Available to use Kakao Login or Kakao Sync with one native app key in multiple native apps. |
| The service sends Kakao Talk messages or uses Kakao Talk Share from multiple native apps. | Available to send Kakao Talk messages or use Kakao Talk Share with the same native app key. Available to set separate native app links to the message. |
For better understanding, here are the terms mentioned in this documentation.
| Term | Description |
|---|---|
| Multi-app | A feature that allows the registration of multiple bundle IDs and package names in a native app key to use the Kakao SDK. |
| Multi-package | A feature that allows the registration of the package name of the Android native app in [App] > [Platform key] > [Native app key] on the app management page. |
| Multi-bundle ID | A feature that allows the registration of the bundle ID of the iOS native app in [App] > [Platform key] > [Native app key] on the app management page. |
| Multi store URL | A feature that allows the registration of multiple store URLs in [App] > [Platform key] > [Native app key] on the app management page. |
| Kakao Developers app | An app that registered in the app management page |
| Native app | The services' Android or iOS app. |
| Main app | The services' main native app. |
| Sub-app | The services' additional native apps. |
To use the multi-app, register all of the package names and bundle IDs of the sub-apps in [App] > [Platform key] > [Native app key] on the app management page..
🅐 Package name: Input the package name of the main app. 🅑 Multi-package name: Input the package name of each sub-app. For multiple package names, separate them with line breaks. 🅒 Store URL: For [GooglePlay], the store URL to download the main app is automatically created with the package name. For [Others], enter the store URL manually. 🅓 Multi-store URL: Select a store type in store type, and then input the package name of a sub-app in the store URL column. To add another multi-store URL, click [Add]. 🅔 Key hash: Input all of the release and debug key hash values. Separate multiple key hash values with line breaks.
🅐 Bundle ID: Input the bundle ID of the main app. 🅑 Multi-bundle ID: Input the bundle ID of each sub-app. For multiple bundle IDs, separate them with line breaks. 🅒 iPhone app/iPad app: Input the app ID of the main app in the App store ID entry field, and then the store URL to download the main app for iPhone app or iPad is automatically created in the store URL entry field. 🅓 Multi-store URL: Input the app ID of each sub-app in the store URL column, and then click [Add]. To add another multi-store URL, click [Add].
The custom URL scheme is used to launch the services' apps for Kakao Login and Kakao Talk messages.
After Platform setting, check the custom URL scheme value.
Copy the value of [App] > [Platform key] > [Native app key] > [Scheme] on the app management page for each native app.
Add the copied value in the AndroidManifest.xml of each native app. Refer to the sample below.
<activity android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- For Kaka Login Redirect URI: "${COPIED_CUSTOM_SCHEME}://oauth" -->
<data android:scheme="${CUSTOM_SCHEME_OF_DESIRED_APP}" android:host="oauth" />
<!-- For Kakao Talk Share: "${COPIED_CUSTOM_SCHEME}://kakaolink -->
<data android:scheme="${CUSTOM_SCHEME_OF_DESIRED_APP}" android:host="kakaolink" />
<!-- For Follow Kakao Talk Channel: "${COPIED_CUSTOM_SCHEME}://channel" -->
<data android:host="channel" android:scheme="${COPIED_CUSTOM_SCHEME}" />
<!-- For Shipping address picker: "${COPIED_CUSTOM_SCHEME}://address" -->
<data android:host="address" android:scheme="${COPIED_CUSTOM_SCHEME}" />
</intent-filter>
</activity>
For the iOS apps, the following settings are required.
Copy the value of [App] > [Platform key] > [Native app key] > [Scheme] on the app management page for each native app.
After saving the settings, you can see the custom schemes on the Platform page. Add the copied value to [Target] > [Info] > [URL Types] > [URL Schemes] in the Xcode.
To use the Kakao Login and Kakao Talk Share in the services' app, register the Allowlist. Refer to Allowlist and set LSApplicationQueriesSchemes for the desired API.
For a Flutter app, both Android and iOS settings are required.
To initialize the Kakao SDK for Android and iOS, add customScheme in the init() method with the app's custom scheme that copied on the Platform page.
KakaoSdk.init(
context,
appKey = "${NATIVE_APP_KEY}",
customScheme = "${COPIED_CUSTOM_SCHEME}"
)
KakaoSDK.initSDK(
appKey: "${NATIVE_APP_KEY}",
customScheme: "${COPIED_CUSTOM_SCHEME}"
)
KakaoSdk.init(
nativeAppKey: '${NATIVE_APP_KEY}',
customScheme: '${COPIED_CUSTOM_SCHEME}',
);
With multi-app, both the main app and sub-app can be set to the app link in the message. The types of app links that can be set in messages are below.
The Link settings for the multi-app does not support the default template but the custom template. Refer to How to use.
Register a custom template in [Tools] > [Message Template Builder]. If the app uses multiple apps, the app links for each custom template can be set separately with the desired custom URL schemes or store URLs.
For example, there are two apps for the service. The message from the 'A' app can be set with the app link to the 'A' app, and the message from the 'B' app can be set with the app link to the 'B' app. Each component can be set to the different app links.
Refer to Message template for the details.
Permission is required to use the multi-app. Request permission in [App] > [Request Additional Features] on the app management page.
The app must meet the conditions below to request permission.
The multi-app operates based on a Kakao Developers app. A Kakao Developers app represents the service, so the native apps using the multi-app can be only one service. Accordingly, there are the following restrictions.
The multi-app cannot set the separate basic information for each native app.
The basic information contains the app name, icon, and company name (business, corporation, or organization name). The basic information is displayed on the consent screen of Kakao Login, the Manage connected services page, and Kakao Talk messages. The main app and the sub-apps share the same basic information.
Refer to the image below for the location of the basic information.
The Kakao Talk messages can be sent with the Kakao Talk Share or Kakao Talk Message APIs.
The basic information in the bottom of the Kakao Talk messages contains the basic information, the store URLs, and the Custom URL scheme. The store URLs and the Custom URL schemes can be set for each sub-app. Refer to Message setting.
The main app and the sub-apps are sharing the link status of Kakao Login. The link status can cause errors when one of the multi-app calls Manual signup or Unlink API.