iOS SDK 자주 묻는 질문
iOS 통합 FAQ
Anchor link toQ: Pushwoosh SDK를 iOS 프로젝트에 어떻게 설치할 수 있나요?
Anchor link toSwift Package Manager 또는 CocoaPods를 사용하여 Pushwoosh SDK를 통합할 수 있습니다.
Q: Swift Package Manager를 사용하여 Pushwoosh SDK를 어떻게 설치하나요?
Anchor link toXcode에서 Package Dependencies 섹션으로 이동하여 다음 URL을 사용하여 패키지를 추가합니다: https://github.com/Pushwoosh/Pushwoosh-XCFramework.
Q: CocoaPods를 사용하여 Pushwoosh SDK를 어떻게 설치하나요?
Anchor link to프로젝트의 Podfile을 열고 pod 'PushwooshXCFramework' 라인을 추가합니다. 그런 다음 터미널에서 pod install 명령을 실행합니다.
Q: Push Notifications를 활성화하려면 프로젝트에 어떤 기능을 추가해야 하나요?
Anchor link to프로젝트 설정의 Signing & Capabilities 섹션에서 Push Notifications와 Background Modes 기능을 추가해야 합니다. Background Modes를 추가할 때 Remote notifications 확인란을 선택해야 합니다.
Q: Time Sensitive Notifications에 필요한 추가 기능은 무엇인가요?
Anchor link toTime Sensitive Notifications(iOS 15 이상)를 사용하려면 Time Sensitive Notifications 기능도 추가해야 합니다.
Q: Pushwoosh 초기화 코드는 어디에 추가해야 하나요?
Anchor link to초기화 코드는 AppDelegate 클래스에 추가해야 합니다.
Q: SwiftUI의 AppDelegate에 어떤 초기화 코드를 추가해야 하나요?
Anchor link toSwiftUI 프로젝트에 Pushwoosh를 통합하기 위한 제공된 Swift 코드 예제를 참조하십시오.
Q: 표준 Swift AppDelegate에 어떤 초기화 코드를 추가해야 하나요?
Anchor link to표준 Swift 프로젝트에 Pushwoosh를 통합하기 위한 제공된 Swift 코드 예제를 참조하십시오.
Q: Objective-C AppDelegate에 어떤 초기화 코드를 추가해야 하나요?
Anchor link toObjective-C 프로젝트에 Pushwoosh를 통합하기 위한 제공된 Objective-C 코드 예제를 참조하십시오.
Q: Info.plist 파일에 어떤 키를 추가해야 하나요?
Anchor link to앱의 Info.plist 파일에 Pushwoosh_APPID 키를 애플리케이션 코드로 설정하고 PW_API_TOKEN 키를 API 토큰으로 설정해야 합니다.
Q: 메시지 전송 추적의 목적은 무엇인가요?
Anchor link toPushwoosh는 Notification Service Extension을 사용하여 푸시 알림의 전송 이벤트를 추적하는 것을 지원합니다.
Q: 프로젝트에 Notification Service Extension을 어떻게 추가하나요?
Anchor link toXcode에서 File > New > **Target…**으로 이동하여 Notification Service Extension을 선택하고 Next를 누릅니다. 타겟 이름을 입력하고 Finish를 누릅니다. 활성화하라는 메시지가 나타나면 Cancel을 누릅니다.
Q: Notification Service Extension에 Pushwoosh SDK를 어떻게 추가하나요?
Anchor link toNotification Service Extension의 메인 .swift 또는 .m 파일에 제공된 Swift 또는 Objective-C 코드 스니펫을 추가합니다. 이 코드는 PWNotificationExtensionManager를 사용하여 알림 요청을 처리합니다.
Q: App Groups의 목적은 무엇인가요?
Anchor link toApp 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.plist에 PW_APP_GROUPS_NAME 키를 추가하고 그 값을 App Groups 그룹의 이름으로 설정합니다.
Q: Notification Service Extension의 Info.plist에 어떤 키를 추가해야 하나요?
Anchor link toNotification Service Extension의 Info.plist에 PW_APP_GROUPS_NAME 키(App Groups 이름으로 설정)와 Pushwoosh_APPID 키(애플리케이션 코드로 설정)를 추가합니다.
Q: Pushwoosh 통합을 어떻게 확인하나요?
Anchor link to프로젝트를 빌드하고 실행한 후, Pushwoosh Control Panel로 이동하여 애플리케이션에 푸시 알림을 보냅니다. 기기에서 알림이 나타나는 것을 볼 수 있습니다.
Q: Pushwoosh SDK에서 푸시 알림을 처리하는 두 가지 주요 콜백은 무엇인가요?
Anchor link to두 가지 주요 콜백은 onMessageReceived와 onMessageOpened입니다.
Q: onMessageReceived 콜백은 언제 호출되나요?
Anchor link toonMessageReceived 메서드는 애플리케이션이 푸시 알림을 수신할 때 호출됩니다.
Q: onMessageOpened 콜백은 언제 호출되나요?
Anchor link toonMessageOpened 메서드는 사용자가 푸시 알림과 상호 작용하여 열 때 호출됩니다.
Q: 수신되거나 열린 푸시 알림의 페이로드에 어떻게 접근할 수 있나요?
Anchor link toonMessageReceived 및 onMessageOpened 콜백에 전달되는 PWMessage 객체의 페이로드는 payload 속성을 통해 접근할 수 있습니다.
Q: Pushwoosh에서 사용자 ID를 어떻게 설정할 수 있나요?
Anchor link toPushwoosh.sharedInstance() 객체의 setUserId(_:) 메서드를 사용하고 사용자의 ID를 인수로 전달합니다.
Q: Pushwoosh에서 사용자의 이메일 주소를 어떻게 설정할 수 있나요?
Anchor link toPushwoosh.sharedInstance() 객체의 setEmail(_:) 메서드를 사용하고 사용자의 이메일을 제공합니다.
Q: Pushwoosh에서 추가 사용자 정보를 태그로 어떻게 설정할 수 있나요?
Anchor link toPushwoosh.sharedInstance() 객체의 setTags(_:) 메서드를 사용하고 키가 태그 이름이고 값이 해당 태그 값인 딕셔너리를 전달합니다.
Q: 추가 속성을 가진 사용자 이벤트를 어떻게 추적할 수 있나요?
Anchor link toPWInAppManager.shared()의 postEvent(_:withAttributes:) 메서드를 사용하고 이벤트 이름(예: "login")과 속성 딕셔너리(예: "name", "last_login")를 제공합니다.
Q: 제품 세부 정보가 포함된 사용자 구매 이벤트를 어떻게 추적할 수 있나요?
Anchor link toPWInAppManager.shared()의 postEvent(_:withAttributes:) 메서드를 이벤트 이름 "purchase"와 제품 세부 정보(예: "product_id", "product_name", "price", "quantity")를 포함하는 딕셔너리와 함께 사용합니다.
Q: 리치 미디어 표시를 처리하기 위해 델리게이트를 어떻게 설정하나요?
Anchor link to뷰 컨트롤러나 다른 적절한 클래스에서 PWRichMediaPresentingDelegate 프로토콜을 준수하고 PWRichMediaManager.shared()의 delegate 속성을 준수하는 인스턴스로 설정합니다.
Q: 리치 미디어의 표시 스타일을 어떻게 구성할 수 있나요?
Anchor link toPWModalWindowConfiguration.shared() 객체를 사용하여 configureModalWindow(with:present:dismiss:) 메서드를 통해 모달 창 위치 및 표시/해제 애니메이션과 같은 속성을 구성합니다.
Q: 리치 미디어 델리게이트 메서드에서 어떤 정보에 접근할 수 있나요?
Anchor link to델리게이트 메서드는 리치 미디어 콘텐츠에 대한 정보(pushPayload 포함)를 담고 있는 PWRichMedia 객체에 대한 접근을 제공합니다. presentingDidFailForRichMedia:withError: 메서드는 실패를 설명하는 Error 객체도 제공합니다.
문제 해결
Anchor link toQ: “프로비저닝 프로필에 APS 항목이 없습니다” 오류
Anchor link to“Your provisioning profile does not have APS entry.” 오류 메시지가 표시되면 프로비저닝 프로필이 푸시와 호환되고 aps-environment 문자열에 production 또는 development 값이 포함되어 있는지 확인하십시오. 가장 쉬운 확인 방법은 모바일 프로비저닝 프로필을 텍스트 편집기에서 열고 aps-environment 문자열을 찾는 것입니다. 그곳에 있어야 합니다.
만약 있고 계속해서 오류가 발생한다면, XCode가 여전히 “푸시와 호환되지 않는” 프로필을 선택하고 있다는 의미입니다. 올바른 프로필로 서명했는지 확인하십시오. 때로는 동일한 앱 ID에 대해 두 개의 프로필이 있을 때 XCode가 혼동하여 이전 프로필로 서명하는 경우가 있습니다.
권장되는 단계는 다음과 같습니다:
- 모든 XCode 프로필을 제거합니다.
- 유일한 새 프로필을 추가합니다.
- 앱을 다시 빌드합니다.
Q: iOS 푸시 토큰과 hwid는 어떻게 생겼나요?
Anchor link toiOS 기기 푸시 토큰은 64개의 16진수 기호로 이루어진 문자열입니다. 푸시 토큰 예시:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
API 요청에서 특정 기기를 타겟팅할 때 사용하는 iOS 푸시 토큰이 소문자인지 확인하십시오.
Pushwoosh는 IDFV를 기기 HWID로 사용합니다. 사용자가 특정 공급업체의 모든 앱을 다시 설치하는 경우 변경될 수 있다는 점에 유의하십시오.
CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93
Q: 앱이 실행 중일 때 배너를 켜고 끄려면 어떻게 해야 하나요?
Anchor link to기본적으로 최신 iOS SDK는 앱이 포그라운드에서 실행 중일 때 알림 배너를 표시합니다.
Info.plist에서 다음 플래그를 변경하여 이 동작을 제어할 수 있습니다:
플래그 Pushwoosh_ALERT_TYPE – 문자열 유형, 값은 다음과 같습니다:
BANNER– 기본값, 인앱 알림 배너 표시ALERT– 경고 알림NONE– 앱이 포그라운드에 있을 때 알림을 표시하지 않음
Q: 테스트 기기에서 사용할 iOS 기기 푸시 토큰을 어떻게 얻나요?
Anchor link toiOS 기기 푸시 토큰을 얻으려면,
- Xcode => Devices & Simulators를 엽니다.
- 테스트 기기를 컴퓨터에 연결합니다.
- 왼쪽의 기기 목록에서 연결된 기기를 선택합니다.
- Open Console 버튼을 클릭합니다.

기기 푸시 토큰이 필요한 애플리케이션을 실행하고, “Registered for push notifications” 라인에서 64개의 16진수 문자로 된 기기 푸시 토큰을 찾습니다:

Q: 짧은 시간 내에 앱을 제거했다가 다시 설치한 후에도 배지가 지워지지 않는 이유는 무엇인가요?
Anchor link to이는 예상된 동작입니다. 배지는 iOS 자체에서 처리되며 그 값은 애플리케이션 환경 설정에 저장되는데, 앱을 제거할 때 즉시 제거되지 않습니다. 즉시 재설치하는 경우 배지 값은 잠시 동안 남아있게 되어, 앱을 다시 설치한 후에도 동일한 배지가 표시됩니다.