콘텐츠로 건너뛰기

iOS SDK 자주 묻는 질문

iOS 통합 FAQ

Anchor link to

Q: Pushwoosh SDK를 제 iOS 프로젝트에 어떻게 설치할 수 있나요?

Anchor link to

Swift Package Manager 또는 CocoaPods를 사용하여 Pushwoosh SDK를 통합할 수 있습니다.

Q: Swift Package Manager를 사용하여 Pushwoosh SDK를 어떻게 설치하나요?

Anchor link to

Xcode에서 Package Dependencies 섹션으로 이동하여 다음 URL을 사용하여 패키지를 추가하세요: https://github.com/Pushwoosh/Pushwoosh-XCFramework.

Q: CocoaPods를 사용하여 Pushwoosh SDK를 어떻게 설치하나요?

Anchor link to

프로젝트의 Podfile을 열고 pod 'PushwooshXCFramework' 줄을 추가합니다. 그런 다음 터미널에서 pod install 명령을 실행합니다.

Q: 푸시 알림을 활성화하기 위해 프로젝트에 어떤 기능을 추가해야 하나요?

Anchor link to

프로젝트 설정의 Signing & Capabilities 섹션에서 Push NotificationsBackground Modes 기능을 추가해야 합니다. Background Modes를 추가할 때 Remote notifications 확인란을 선택해야 합니다.

Q: Time Sensitive Notifications에 필요한 추가 기능은 무엇인가요?

Anchor link to

Time Sensitive Notifications(iOS 15 이상)를 사용하려는 경우 Time Sensitive Notifications 기능도 추가해야 합니다.

Q: Pushwoosh 초기화 코드는 어디에 추가해야 하나요?

Anchor link to

초기화 코드는 AppDelegate 클래스에 추가해야 합니다.

Q: SwiftUI의 AppDelegate에 어떤 초기화 코드를 추가해야 하나요?

Anchor link to

SwiftUI 프로젝트에 Pushwoosh를 통합하기 위해 제공된 Swift 코드 예제를 참조하세요.

Q: 표준 Swift AppDelegate에 어떤 초기화 코드를 추가해야 하나요?

Anchor link to

표준 Swift 프로젝트에 Pushwoosh를 통합하기 위해 제공된 Swift 코드 예제를 참조하세요.

Q: Objective-C AppDelegate에 어떤 초기화 코드를 추가해야 하나요?

Anchor link to

Objective-C 프로젝트에 Pushwoosh를 통합하기 위해 제공된 Objective-C 코드 예제를 참조하세요.

Q: Info.plist 파일에 어떤 키를 추가해야 하나요?

Anchor link to

앱의 Info.plist 파일에 Application Code로 설정된 Pushwoosh_APPID 키와 API Token으로 설정된 PW_API_TOKEN 키를 추가해야 합니다.

Q: 메시지 전송 추적의 목적은 무엇인가요?

Anchor link to

Pushwoosh는 Notification Service Extension을 사용하여 푸시 알림의 전송 이벤트를 추적하는 것을 지원합니다.

Q: 프로젝트에 Notification Service Extension을 어떻게 추가하나요?

Anchor link to

Xcode에서 File > New > **Target…**으로 이동하여 Notification Service Extension을 선택하고 Next를 누릅니다. 대상 이름을 입력하고 Finish를 누릅니다. 활성화하라는 메시지가 나타나면 Cancel을 누릅니다.

Q: Notification Service Extension에 Pushwoosh SDK를 어떻게 추가하나요?

Anchor link to

Notification Service Extension의 메인 .swift 또는 .m 파일에 제공된 Swift 또는 Objective-C 코드 스니펫을 추가하세요. 이 코드는 PWNotificationExtensionManager를 사용하여 알림 요청을 처리합니다.

Q: App Groups의 목적은 무엇인가요?

Anchor link to

App Groups 기능은 Notification Service Extension이 메인 애플리케이션과 통신할 수 있도록 하는 데 필요합니다.

Q: 메인 타겟과 Notification Service Extension에 대해 App Groups를 어떻게 활성화하나요?

Anchor link to

두 타겟 모두에 대해 Signing & Capabilities로 이동하여 App Groups 기능을 추가하고 + 버튼을 눌러 새 그룹을 만듭니다. 그룹 이름이 group.으로 시작하는지 확인하고 두 타겟에 동일한 그룹 이름을 사용하세요.

Q: App Groups를 위해 메인 타겟의 Info.plist에 어떤 키를 추가해야 하나요?

Anchor link to

메인 타겟의 Info.plistPW_APP_GROUPS_NAME 키를 추가하고 그 값을 App Groups 그룹의 이름으로 설정하세요.

Q: Notification Service Extension의 Info.plist에 어떤 키를 추가해야 하나요?

Anchor link to

Notification Service Extension의 Info.plistPW_APP_GROUPS_NAME 키(App Groups 이름으로 설정)와 Pushwoosh_APPID 키(Application Code로 설정)를 추가하세요.

Q: Pushwoosh 통합을 어떻게 확인하나요?

Anchor link to

프로젝트를 빌드하고 실행한 후, Pushwoosh Control Panel로 이동하여 애플리케이션에 푸시 알림을 보냅니다. 기기에서 알림이 나타나는 것을 볼 수 있습니다.

Q: Pushwoosh SDK에서 푸시 알림을 처리하기 위한 두 가지 주요 콜백은 무엇인가요?

Anchor link to

두 가지 주요 콜백은 onMessageReceivedonMessageOpened입니다.

Q: onMessageReceived 콜백은 언제 호출되나요?

Anchor link to

onMessageReceived 메서드는 애플리케이션이 푸시 알림을 수신할 때 호출됩니다.

Q: onMessageOpened 콜백은 언제 호출되나요?

Anchor link to

onMessageOpened 메서드는 사용자가 푸시 알림과 상호 작용하고 열 때 호출됩니다.

Q: 수신되거나 열린 푸시 알림의 페이로드에 어떻게 접근할 수 있나요?

Anchor link to

(onMessageReceivedonMessageOpened 콜백으로 전달되는) PWMessage 객체의 페이로드는 payload 속성을 통해 접근할 수 있습니다.

Q: Pushwoosh에서 사용자 ID를 어떻게 설정할 수 있나요?

Anchor link to

Pushwoosh.sharedInstance() 객체의 setUserId(_:) 메서드를 사용하고 사용자의 ID를 인수로 전달하세요.

Q: Pushwoosh에서 사용자의 이메일 주소를 어떻게 설정할 수 있나요?

Anchor link to

Pushwoosh.sharedInstance() 객체의 setEmail(_:) 메서드를 사용하여 사용자의 이메일을 제공하세요.

Pushwoosh에서 추가 사용자 정보를 태그로 어떻게 설정할 수 있나요?

Anchor link to

Pushwoosh.sharedInstance() 객체의 setTags(_:) 메서드를 사용하고, 키가 태그 이름이고 값이 해당 태그 값인 딕셔너리를 전달하세요.

추가 속성으로 사용자 이벤트를 어떻게 추적할 수 있나요?**

Anchor link to

PWInAppManager.shared()postEvent(_:withAttributes:) 메서드를 사용하고, 이벤트 이름(예: "login")과 속성 딕셔너리(예: "name", "last_login")를 제공하세요.

Q: 제품 세부 정보와 함께 사용자 구매 이벤트를 어떻게 추적할 수 있나요?

Anchor link to

PWInAppManager.shared()postEvent(_:withAttributes:) 메서드를 이벤트 이름 "purchase""product_id", "product_name", "price", "quantity"와 같은 제품 세부 정보가 포함된 딕셔너리와 함께 사용하세요.

Q: 리치 미디어 표시를 처리하기 위해 델리게이트를 어떻게 설정하나요?

Anchor link to

뷰 컨트롤러나 다른 적절한 클래스에서 PWRichMediaPresentingDelegate 프로토콜을 준수하고 PWRichMediaManager.shared()delegate 속성을 준수하는 인스턴스로 설정하세요.

Q: 리치 미디어의 표시 스타일을 어떻게 구성할 수 있나요?

Anchor link to

PWModalWindowConfiguration.shared() 객체를 사용하여 configureModalWindow(with:present:dismiss:) 메서드를 통해 모달 창 위치 및 표시/해제 애니메이션과 같은 속성을 구성하세요.

Q: 리치 미디어 델리게이트 메서드에서 어떤 정보에 접근할 수 있나요?**

Anchor link to

델리게이트 메서드는 리치 미디어 콘텐츠에 대한 정보( pushPayload 포함)를 담고 있는 PWRichMedia 객체에 대한 접근을 제공합니다. presentingDidFailForRichMedia:withError: 메서드는 실패를 설명하는 Error 객체도 제공합니다.

문제 해결

Anchor link to

Q: “Your provisioning profile does not have APS entry” 오류

Anchor link to

“Your provisioning profile does not have APS entry.” 오류 메시지가 표시되면 프로비저닝 프로필이 푸시와 호환되고 production 또는 development 값을 가진 aps-environment 문자열이 포함되어 있는지 확인하세요. 가장 쉬운 확인 방법은 모바일 프로비저닝 프로필을 텍스트 편집기에서 열고 aps-environment 문자열을 찾는 것입니다. 그곳에 있어야 합니다.

만약 있는데도 계속 오류가 발생한다면, XCode가 여전히 “푸시 비호환” 프로필을 선택하고 있다는 의미입니다. 올바른 프로필로 서명했는지 확인하세요. 때로는 동일한 App ID에 대해 두 개의 프로필이 있을 경우 XCode가 혼동하여 이전 프로필로 서명하는 경우가 있습니다.

권장되는 단계는 다음과 같습니다:

  1. 모든 XCode 프로필을 제거합니다;
  2. 새 프로필 하나만 추가합니다;
  3. 앱을 다시 빌드합니다.

Q: iOS 푸시 토큰과 hwid는 어떻게 생겼나요?

Anchor link to

iOS 기기 푸시 토큰은 64개의 16진수 기호로 이루어진 문자열입니다. 푸시 토큰 예시:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
API 요청에서 특정 기기를 타겟팅할 때 사용하는 iOS 푸시 토큰이 소문자인지 확인하세요.

Pushwoosh는 기기 HWID로 IDFV를 사용합니다. 사용자가 특정 공급업체의 모든 앱을 다시 설치하는 경우 변경될 수 있다는 점에 유의하세요.

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

Q: 앱이 실행 중일 때 배너를 켜고 끄려면 어떻게 하나요?

Anchor link to

기본적으로 최신 iOS SDK는 앱이 포그라운드에서 실행 중일 때 알림 배너를 표시합니다.
Info.plist에서 다음 플래그를 변경하여 이 동작을 제어할 수 있습니다:

플래그 Pushwoosh_ALERT_TYPE – 문자열 유형, 값은 다음과 같습니다:

  • BANNER – 기본값, 배너 인앱 알림을 표시합니다
  • ALERT – 경고 알림
  • NONE – 앱이 포그라운드에 있을 때 알림을 표시하지 않습니다

Q: Test Devices에서 사용할 iOS 기기 푸시 토큰을 어떻게 얻나요?

Anchor link to

iOS 기기 푸시 토큰을 얻으려면,

  1. Xcode => Devices & Simulators를 엽니다;
  2. 테스트 기기를 컴퓨터에 연결합니다;
  3. 왼쪽의 기기 목록에서 연결된 기기를 선택합니다;
  4. Open Console 버튼을 클릭합니다.

기기 푸시 토큰이 필요한 애플리케이션을 실행하고, “Registered for push notifications” 줄에서 64자 16진수 기기 푸시 토큰을 찾으세요:

Q: 앱을 제거했다가 짧은 시간 내에 다시 설치하면 왜 배지가 지워지지 않나요?

Anchor link to

이는 예상된 동작입니다. 배지는 iOS 자체에서 처리되며 그 값은 애플리케이션 환경 설정에 저장되는데, 앱을 제거할 때 즉시 제거되지 않습니다. 즉시 재설치할 경우를 대비해 배지 값은 일정 시간 동안 남아있게 되어, 앱을 다시 설치한 후에도 동일한 배지가 표시됩니다.