WatchOS 2를 사용한 Apple Watch 구현

WatchOS 2부터는 WatchKit Extension이 Apple Watch에서 실행됩니다. 이 환경에서 실행되는 애플리케이션의 경우 WatchConnectivity 프레임워크는 포함된 iOS 앱과 데이터를 공유해야 합니다.

AdobeMobileLibrary v4.6.0부터 WatchConnectivity가 지원됩니다.

새로운 Adobe Experience Platform Mobile SDK 릴리스

Adobe Experience Platform Mobile SDK와 관련된 정보 및 설명서를 찾고 계십니까? 여기를 클릭하여 최신 설명서를 확인하십시오.

2018년 9월 일자로 SDK의 새로운 주요 버전을 릴리스하였습니다. 이러한 새로운 Adobe Experience Platform Mobile SDK는 Experience Platform Launch를 통해 구성할 수 있습니다.

  • 시작하려면 Adobe Experience Platform Launch로 이동합니다.
  • Experience Platform SDK 리포지토리의 항목을 보려면 Github: Adobe Experience Platform SDK로 이동하십시오.

시작하기

중요

프로젝트에 최소한 다음 타겟이 포함되어 있는지 확인하십시오.

  • 포함된 앱
  • WatchKit 앱
  • WatchKit 확장

WatchKit 앱 개발에 대한 자세한 내용은 Watch 앱 아키텍처를 참조하십시오.

포함된 앱 구성

Xcode 프로젝트에서 다음 단계를 완료하십시오.

  1. AdobeMobileLibrary 폴더를 프로젝트로 드래그합니다.

  2. ADBMobileConfig.json 파일이 포함된 앱 타겟의 구성원인지 확인합니다.

  3. 포함된 앱 타겟의 빌드 단계 탭에서 바이너리를 라이브러리와 연결 섹션을 확장하고 다음 라이브러리를 추가합니다.

    • AdobeMobileLibrary.a
    • libsqlite3.tbd
    • SystemConfiguration.framework
  4. UIApplicationDelegate 프로토콜을 구현하는 클래스에서 WCSessionDelegate 프로토콜을 추가합니다.

    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface AppDelegate : UIResponder <UIApplicationDelegate, WCSessionDelegate>
    
  5. 앱 위임 클래스의 구현 파일에서 AdobeMobileLibrary를 가져옵니다.

    #import "ADBMobile.h"
    
  6. ADBMobile 라이브러리를 호출하기 전에 앱 위임의 application:didFinishLaunchingWithOptions:에서 WCSession을 구성합니다.

    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
  7. 앱 위임에서 session:didReceiveMessage:session:didReceiveUserInfo: 메서드를 구현합니다.

    syncSettings:ADBMobile 라이브러리에서 호출됩니다. 이 라이브러리는 사전이 ADBMobile 라이브러리에서 사용되었는지 여부를 나타내는 부울을 반환합니다. No를 반환하면 Adobe SDK에서 메시지가 시작되지 않습니다.

    - (void) session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message { 
        // pass message to ADBMobile 
        if (![ADBMobile syncSettings:message]) { 
            // handle your own custom messages 
        } 
    } 
    - (void) session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo { 
        // pass userInfo to ADBMobile 
        if (![ADBMobile syncSettings:userInfo]) { 
            // handle your own custom messages 
        } 
    } 
    

WatchKit Extension 구성

  1. ADBMobileConfig.json 파일이 WatchKit Extention 타겟의 구성원인지 확인합니다.

  2. WatchKit Extension 타겟의 빌드 단계 탭에서 바이너리를 라이브러리와 연결 섹션을 확장하고 다음 라이브러리를 추가합니다.

    • AdobeMobileLibrary_Watch.a
    • libsqlite3.tbd
  3. WKExtensionDelegate 프로토콜을 구현하는 클래스에서 WatchConnectivity를 가져온 후 WCSessionDelegate 프로토콜을 추가합니다.

    #import <WatchConnectivity/WatchConnectivity.h> 
    @interface ExtensionDelegate : NSObject <WKExtensionDelegate, WCSessionDelegate>
    
  4. 확장 위임 클래스의 구현 파일에서 AdobeMobileLibrary를 가져옵니다.

    #import "ADBMobile.h"
    
  5. 확장 위임의 applicationDidFinishLaunching에서 WCSession 라이브러리를 호출하기 전에 ADBMobile을 구성합니다.

    // check for session availability 
    if ([WCSession isSupported]) { 
        WCSession *session = [WCSession defaultSession]; 
        session.delegate = self; 
        [session activateSession]; 
    }
    
  6. 확장 위임의 applicationDidFinishLaunching에서 SDK용 시계 앱을 초기화합니다.

    [ADBMobile initializeWatch];
    
  7. 확장 위임에서 session:didReceiveMessage:session:didReceiveUserInfo: 메서드를 구현합니다.

    syncSettings:ADBMobile 라이브러리에서 호출됩니다. 이 라이브러리는 사전이 ADBMobile 라이브러리에서 사용되었는지 여부를 나타내는 부울을 반환합니다. NO를 반환하면 Adobe SDK에서 메시지가 시작되지 않습니다.

    - (void) session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message { 
        // pass message to ADBMobile 
        if (![ADBMobile syncSettings:message]) { 
            // handle your own custom messages 
        } 
    } 
    - (void) session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo { 
        // pass userInfo to ADBMobile 
        if (![ADBMobile syncSettings:userInfo]) { 
            // handle your own custom messages 
        } 
    } 
    

추가 정보

다음 정보를 숙지하십시오.

  • WatchKit 앱의 경우 a.RunModeExtension으로 설정됩니다.
  • WatchKit 앱은 시계에서 실행되므로 앱은 a.AppID에 앱 이름을 올바르게 보고합니다.
  • WatchOS2 앱에서는 라이프사이클 호출이 트리거되지 않습니다.

이 페이지에서는