---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# 애플리케이션에서 NowSDK 초기화

# 애플리케이션에서 NowSDK 초기화 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 4분

NowSDK에서 제공하는 기능에 액세스하려면 먼저 애플리케이션에서 NowSDK를 초기화해야 합니다.
초기화는 Mobile SDK 비동기식입니다. 애플리케이션 대리자의 `application(application:didFinishLaunchingWithOptions:)` 함수와 같이 가능한 한 빨리 초기화 프로세스를 시작하는 것이 좋습니다. 초기화는 애플리케이션 시작당 한 번만 수행하면 됩니다. 전경에 표시되거나 새 장면이 감지되면 다시 초기화할 필요가 없습니다.

iOS 애플리케이션에서 초기화 ServiceNow Mobile SDK 하려면 JWT 공급자 정보를 사용하는 `NowSDKAuthorizationProviding`을 준수하는 권한 부여 공급자와 `DevicePermissionDelegate`를 준수하는 대리자가 필요합니다.

다음은 SDK 초기화 구조의 예입니다. 추가 코드 예제는 샘플 애플리케이션을 참조하십시오 ServiceNow Mobile SDK .

    // 

    //  JWTProvider.swift 

    import Foundation 
    import NowSDK 

    class JWTProvider: NowSDKAuthorizationProviding { 
      let token: String 

      init(token: String) { 
        self.token = token 
      } 

      func requestAuthorization(for instanceUrl: URL, completion: @escaping ([AuthorizationToken]?) -> Void) { 
        completion([AuthorizationToken(type: .jwt, token: token)]) 
      } 
    } 

    //
    //  PermissionProvider.swift 

    import Foundation
    import NowSDK 

    class PermissionProvider: DevicePermissionDelegate { 
      var isUserPermissionAllowed: Bool { Bool.random() } 

      func canRequestPermission(_ permission: DevicePermission) -> Bool { 
        guard isUserPermissionAllowed else { false } 
        return true 
      } 
    }

    //  
    //  AppDelegate.swift  

    import Foundation  
    import NowSDK  

    @main 
    class AppDelegate: UIResponder, UIApplicationDelegate { 
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 

        let jwtProvider = JWTProvider(token: "a_valid_token") 
        let permissionDelegate = PermissionProvider()  
        let logLevel: NowLogLevel = .debug 

        let config = NowSDKConfiguration(authorizationProvider: jwtProvider, permissionDelegate: permissionProvider, logLevel: logLevel)  

        do { 
          try NowSDK.configure(with: config) 
        } catch { 
          // Handle 'error' 
        }

        return true 

    }

## 게스트 사용자 {#mobsdk-ios-init-nowsdk-in-app__section_cxw_xhx_kxb}

현재 사용자가 인증되지 않은 경우 게스트로 SDK 기능에 액세스할 수 있습니다. 현재 사용자가 게스트임을 나타내려면 권한 부여 공급자의 requestAuthorization 함수가 아래와 같이 게스트 유형의 AuthorizationToken으로 완료되어야 합니다. 이 경우의 토큰 값은 AuthorizationTokenType 이 `.guest`로 설정되어 있는 한 중요하지 않습니다. 게스트 사용자에 대한 자세한 내용은 다음 문서를 참조하십시오 [게스트 사용자 액세스 구성](https://servicenow-prod.fluidtopics.net/jSob_NXFzDB0O_XoTPCSbg "인증되지 않은 사용자가 SDK 서비스에 액세스할 수 있도록 하려면 게스트 사용자 액세스를 허용하도록 인스턴스에서 ServiceNow 구성 Mobile SDK 해야 합니다. 게스트 사용자는 NowWeb을 사용하여 인스턴스에서 호스팅된 공용 웹 페이지를 보고, NowChat을 사용하여 게스트로 대화하고, NowTableService 및 NowGraphQLService를 사용하여 인스턴스의 공용 데이터에 액세스하고, NowAPIService를 사용하여 미인증 사용자에 대해 구성된 사용자 지정 API 서비스에 액세스할 수 있습니다.").

    //  GuestTokenProvider.swift 
    import Foundation 
    import NowSDK 
    class GuestTokenProvider: NowSDKAuthorizationProviding { 
        func requestAuthorization(for instanceUrl: URL,  
            completion: @escaping ([AuthorizationToken]?) -> Void) { 
            completion([AuthorizationToken(type: .guest, token: "")]) 
        } 
    } 

## SDK에서 사용자 로그아웃

사용자가 호스트 애플리케이션에서 로그아웃된 후 `NowSDK.logout()` 메서드를 호출하여 SDK에서 해당 사용자의 세션과 토큰을 ServiceNow 지워야 합니다. 예:  

    func onLogout() {
      NowSDK.logout()
    } 


