---
title: "라인 연동"
slug: "game-gamepot3-line-integration"
tags: ["GAMEPOT 3.0"]
updated: 2026-09-17T09:07:47Z
published: 2026-09-17T09:07:47Z
canonical: "guide.ncloud-docs.com/game-gamepot3-line-integration"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.
# 라인 연동
Classic/VPC 환경에서 이용 가능합니다.
라인 로그인 기능을 사용하기 위한 사용 가이드입니다.
라인에 대한 설명은 [Line Developers](https://developers.line.biz/)를 참조해 주십시오.
## iOS
### Info.plist 설정
1. 프로젝트의 TARGETS > Info > URL Types 에서 "line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)" 를 추가해 주십시오.
2. 프로젝트의 TARGETS > Info > Custom iOS Target Properties > 'Queried URL Schemes' 에 'lineauth2' 를 추가해 주십시오.
Info.plist 에 직접 추가는 경우의 예시는 아래와 같습니다.
| Key | Value |
| --- | --- |
| CFBundleURLSchemes | line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER) |
| LSApplicationQueriesSchemes | lineauth2 |
```
// Info.plist
CFBundleURLTypes
CFBundleTypeRole
Editor
CFBundleURLSchemes
line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)
LSApplicationQueriesSchemes
lineauth2
```
### Swift
다음 코드를 사용하여 AppDelegate.swift 메서드의 코드를 대체해 주십시오.
```
// AppDelegate.swift
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
}
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
let sceneConfiguration = UISceneConfiguration(name: nil, sessionRole: connectingSceneSession.role)
sceneConfiguration.delegateClass = SceneDelegate.self
return sceneConfiguration
}
func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
...
// 라인 로그인 콜백
NotificationCenter.default.post(name: Notification.Name("LineLoginURL"), object: nil, userInfo: ["application": application, "url": url, "options": options, "type": "AppDelegate"])
...
return true
}
}
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
func scene(_ scene: UIScene, openURLContexts URLContexts: Set) {
guard let url = URLContexts.first?.url else {
return
}
...
// 라인 로그인 콜백
NotificationCenter.default.post(name: Notification.Name("LineLoginURL"), object: nil, userInfo: ["url": url, "type": "SceneDelegate"])
...
}
```
### Objective-C
다음 코드를 사용하여 AppDelegate.m 메서드의 코드를 대체 및 추가해 주십시오.
```
// AppDelegate.m
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
...
// 라인 로그인 콜백
NSDictionary *userInfo = @{@"application": app, @"url": url, @"options": options, @"type": @"AppDelegate"};
[[NSNotificationCenter defaultCenter] postNotificationName:@"LineLoginURL" object:nil userInfo:userInfo];
...
return YES;
}
```
다음 코드를 사용하여 SceneDelegate.m 메서드의 코드를 대체 및 추가해 주십시오.
```
// SceneDelegate.m
#import "SceneDelegate.h"
@interface SceneDelegate ()
@end
@implementation SceneDelegate
- (void)scene:(UIScene *)scene openURLContexts:(NSSet *)URLContexts {
NSURL *url = URLContexts.allObjects.firstObject.URL;
if (!url) return;
// LINE 로그인 콜백
NSDictionary *userInfo = @{@"url": url, @"type": @"SceneDelegate"};
[[NSNotificationCenter defaultCenter] postNotificationName:@"LineLoginURL" object:nil userInfo:userInfo];
}
```