Skip to main content
이 페이지에서는 PlayFab Services SDK의 전체 시작 및 종료 시퀀스를 다룹니다. 모든 타이틀은 동일한 상위 수준 패턴을 따릅니다: 선택적 후크 구성, Core 초기화, 서비스 구성 생성, Services 초기화, 작업 수행, 그리고 역순으로 종료.

초기화 시퀀스

초기화에는 네 단계가 있습니다. 첫 번째는 선택 사항이고 나머지 세 단계는 필수입니다.

1단계: 사용자 지정 메모리 후크 설정(선택 사항)

타이틀이 사용자 지정 메모리 할당자를 사용하는 경우, 다른 PlayFab API보다 먼저 PFMemSetFunctions를 호출하세요. 이렇게 하면 모든 SDK 메모리 할당이 사용자의 자체 allocfree 콜백을 통해 라우팅됩니다.
PFMemSetFunctionsPFInitialize보다 먼저 호출해야 합니다. 후크가 설정된 후에는 다시 호출할 수 없습니다.
사용자 지정 메모리 관리가 필요 없다면 이 단계를 건너뛰세요. SDK는 기본 할당 루틴을 사용합니다.

2단계: PlayFab Core 초기화

PFInitialize는 HTTP 계층 및 백그라운드 작업 큐를 포함하여 SDK의 전역 상태를 설정합니다. 정확한 시그니처는 플랫폼에 따라 다릅니다.

Windows, Linux, iOS 및 macOS

백그라운드 작업을 처리할 큐를 제어하려면 __XTaskQueueHandle__을 전달합니다. 기본 스레드풀 큐를 사용하려면 nullptr을 전달합니다.

Android

Android에서는 SDK가 libHttpClient를 초기화할 수 있도록 Java VM과 애플리케이션 컨텍스트도 제공해야 합니다:
__PFInitialize__를 명시적으로 호출하지 않으면, PFServicesInitialize가 내부적으로 기본 매개변수로 호출합니다. 대부분의 타이틀에서는 이것으로 충분합니다. 그러나 __PFMemSetFunctions__를 통해 사용자 지정 메모리 후크를 사용하는 경우, __PFInitialize__를 직접 호출해야 합니다. 그렇지 않으면 PFServicesInitialize가 메모리 후크가 적용되기 전에 Core를 초기화하며, SDK는 기본 할당 루틴을 사용하게 됩니다.

3단계: 서비스 구성 생성

PFServiceConfigCreateHandle은 SDK가 대상으로 삼을 PlayFab 타이틀과 엔드포인트를 지정하는 핸들을 생성합니다. 두 값 모두 Game Manager에서 확인할 수 있습니다.
반환된 __PFServiceConfigHandle__은 이후의 모든 로그인 호출에 필요합니다.

4단계: PlayFab Services 초기화

__PFServicesInitialize__는 Core 위에 Services 계층(Inventory, Leaderboards, Friends 등)을 설정합니다.

Windows, Linux, iOS 및 macOS

이 매개변수는 향후 사용을 위해 예약되어 있으므로 nullptr을 전달합니다.

Android

Android에서는 Java VM과 애플리케이션 컨텍스트를 포함하는 HCInitArgs 구조체를 전달합니다:
이 호출이 성공한 후 SDK가 준비됩니다. 플레이어를 로그인하고 서비스 호출을 할 수 있습니다.

PFServiceConfigHandle 수명 주기

__PFServiceConfigHandle__은 참조 카운트가 있는 핸들입니다. SDK가 참조 카운팅을 통해 내부 수명을 관리하지만, 사용자가 소유한 모든 핸들을 닫을 책임은 사용자에게 있습니다.

핸들 복제

자체 수명을 관리하는 구성 요소 간에 서비스 구성을 공유해야 하는 경우 PFServiceConfigDuplicateHandle을 사용하세요:

종료 시퀀스

종료는 초기화의 역순입니다. Core보다 먼저 Services를 초기화 해제해야 하며, 두 호출 모두 비동기입니다.

1단계: 열려 있는 모든 핸들 닫기

SDK를 해제하기 전에 소유한 모든 PFEntityHandle 및 __PFServiceConfigHandle__을 닫으세요:

2단계: Services 초기화 해제

PFServicesUninitializeAsync는 Services 계층을 해제합니다. 계속하기 전에 완료를 기다리세요.

3단계: Core 초기화 해제

Services 정리가 완료된 후, PFUninitializeAsync를 호출해 Core를 해제합니다:
__PFInitialize__를 명시적으로 호출하지 않은 경우 __PFUninitializeAsync__를 건너뛸 수 있습니다. 이 경우 PFServicesUninitializeAsync가 Core 정리를 자동으로 처리합니다. 그러나 __PFInitialize__를 직접 호출한 경우 PFUninitializeAsync를 직접 호출해야 합니다.

전체 예제

이 예제는 Windows 타이틀에서 초기화부터 종료까지 전체 수명 주기를 보여줍니다:

일반적인 실수

참고 항목

마지막 수정일 2026년 8월 25일