페이지 이동경로
  • Docs>
  • Kakao Login>
  • Advanced: Multi-App

Kakao Login

Advanced: Multi-app

This document describes how to use the multi-app function.

Overview

The Multi App is a function that allows sharing a Kakao Developers app in multiple native apps. Using the multi-app, multiple packages or bundle IDs can be set in a Kakao Developers app. 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 Kakao Developers app in multiple native apps.
The service sends Kakao Talk messages or uses Kakao Talk Sharing from multiple native apps. Available to send Kakao Talk messages or use Kakao Talk Sharing with the same Kakao Developers app.
Available to set separate native app links to the message.

By default, a Kakao Developers app can register only one bundle ID and package name. If an unregistered native app calls the Kakao APIs, errors occur. However, using the multi-app, multiple apps can use the Kakao SDK and Kakao APIs normally with one Kakao Developers app.

Glossary

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 Kakao Developers app to use the Kakao SDK.
Multi-package A feature that allows the registration of the package name of the Android native app in [My Application] > [Platform] > [Android].
Multi-bundle ID A feature that allows the registration of the bundle ID of the iOS native app in [My Application] > [Platform] > [Android].
Multi market URL A feature that allows the registration of multiple market URLs in [My Application] > [Platform] > [Android] or [iOS].
Kakao Developers app An app that registered in [My Application] of Kakao Developers.
Native app The services' Android or iOS app.
Main app The services' main native app.
The main app is registered in [Package name] or [Bundle ID].
Sub-app The services' additional native apps.
The sub-apps are registered in [Multi-package name] or [Multi-bundle ID].

Platform setting

To use the multi-app, register all of the package names and bundle IDs of the sub-apps in [My Application] > [Platform].

Android

How to set multi-package name

🅐 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. 🅒 Market URL: For [GooglePlay], the Open Market URL to download the main app is automatically created with the package name. For [Others], enter the market URL manually. 🅓 Multi-market URL: Select a market type in Market type, and then input the package name of a sub-app in the Market URL column. To add another multi-market URL, click [Add]. 🅔 Key hash: Input all of the release and debug key hash values. Separate multiple key hash values with line breaks.

iOS

How to set multi-bundle ID

🅐 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 market URL to download the main app for iPhone app or iPad is automatically created in the Market URL entry field. 🅓 Multi-market URL: Input the app ID of each sub-app in the Market URL column, and then click [Add]. To add another multi-market URL, click [Add].

Custom URL scheme

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.

Android

Copy the value of [My Application] > [Platform] > [Android] > [Custom scheme] for each native app.

Platform page with custom schemes created

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 Sharing: "${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>

iOS

For the iOS apps, the following settings are required.

URL Schemes

Copy the value of [My Application] > [Platform] > [iOS] > [Custom scheme] for each native app.

After saving the settings, you can see the custom schemes on the Platform page.

Platform page with custom schemes created

Add the copied value to [Target] > [Info] > [URL Types] > [URL Schemes] in the Xcode.

iOS URL Schemes

Allowlist

To use the Kakao Login and Kakao Talk Sharing in the services' app, register the Allowlist. Refer to Allowlist and set LSApplicationQueriesSchemes for the desired API.

Flutter

For a Flutter app, both Android and iOS settings are required.

SDK initialization

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.

Android
iOS
Flutter
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}',
);

Message setting

By default, only one native app can be set for the app link in messages sent through Kakao Talk Sharing and Kakao Talk message API. However, 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.

  • Images, texts, and buttons in the contents
  • Source link

The Link settings for the multi-app does not support the default template but the custom template. Refer to How to use.

Message template setting

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 market 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. For example, 🅐 areas are set to 'A' app links, and 🅑 areas are set to 'B' app links as below.

How to set links in Message template builder

Set the links for Android and iOS referring to the guide below. For more information, refer to Message template.

How to set links in Message template builder
  1. Select a Kakao Developers app using the multi-app.
  2. On the 🅒 Custom template list, select a template.
  3. In the 🅔 Component settings, set the link for each component.
    • Select [Component link] for separate link settings.
    • Select [Common link] to apply the common link setting to all components.
    • Select [Source link] to set the source link.
  4. Set desired links to [ON] in [Component link].
    • [Android Scheme]: A custom URL scheme to launch the service app from the message.
    • [Android Market]: A URL to install the service app from the message.
    • [iOS Scheme]: A custom URL scheme to launch the service app from the message.
    • [iOS Market]: A URL to install the service app from the message.

If the Kakao Developers app is using the multi-app, the setting UI provides the app list to select. Use [Custom] to apply User argument.

multi-app link setting

* Android and iOS have same UI.

Usage policy

Request permission

Permission is required to use the multi-app. Request permission in [My Application] > [Request for App Permissions].

The app must meet the conditions below to request permission.

  • The app's service uses Kakao Login or Kakao Sync.
  • The app's service is operating or planning to operate two or more native apps.
  • The app's service uses integrated membership in the web or app.

Caution

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.

Share basic information

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.

Basic information

The Kakao Talk messages can be sent with the Kakao Talk Sharing or Kakao Talk message APIs.

The basic information in the bottom of the Kakao Talk messages contains the basic information, the market URLs, and the Custom URL scheme. The market URLs and the Custom URL schemes can be set for each sub-app. Refer to Message setting.

Share link status

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.