Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 리팩토링
- 리펙터링
- RxCocoa
- collectionview
- ribs
- Human interface guide
- UITextView
- Observable
- uiscrollview
- swift documentation
- tableView
- uitableview
- 애니메이션
- HIG
- UICollectionView
- 리펙토링
- rxswift
- SWIFT
- combine
- MVVM
- Refactoring
- clean architecture
- 스위프트
- swiftUI
- Protocol
- Xcode
- ios
- Clean Code
- map
- 클린 코드
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Push Notification 간단 테스트 방법 (시뮬레이터) 본문
시뮬레이터에서 푸시 테스트 방법
- terminal에서 커맨드 사용 (번거로움이 있으므로 비추천)
- .apns파일 사용 (json으로 구성된 .apns파일을 만든 후 simulator에 드래그하면 푸시가 가지만, 딥링크 푸시 및 여러가지 푸시를 만들고 테스트 하고 싶은 경우, 직관적이지 않음)
- RocketSim 앱 사용 - 직관적인 UI를 제공하여 쉽게 테스트 가능
RocketSim 설치
- RocketSim 홈페이지에서 설치 (앱스토어)
- Simulator에서 푸시 테스트를 쉽게 하기 위해 사용
- 열기 > Select Xcode 선택 > Application에서 설치된 Xcode 선택
- 권한 허용
- recording 권한 - 시뮬레이터를 실행하면 자동으로 그 옆에 RocketSim 기능을 사용할 수 있는 화면을 띄워줌
(시뮬레이터를 실행하면 자동으로 그 옆에 RocketSim 기능을 사용할 수 있는 화면)
- 시작하면 결제창과 basic으로 free 버전을 사용할 수 있는데, free 버전 선택
- 실행 후 위에 로켓 아이콘 > Settings 선택
- App Actions 탭 > Add group 클릭
- Add group > Bundle Identifier에 테스트할 앱의 번들 ID 입력 및 Add action
- Push Notification 선택
- json 형식 확인 후 Create 버튼 클릭
- 같은 방식으로 test2도 추가
- Xcode > AppDelegate에서 권한 요청
- requestAuthorization(options:)
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound]) { granted, error in
print(granted, error)
}
return true
}
...
- foreground에서도 푸시가 보이게끔 delegate 추가
- cf) 푸시 관련 콜백 관련 메소드들 개념은 이전 포스팅 글 참고
let center = UNUserNotificationCenter.current()
center.delegate = self
...
extension AppDelegate: UNUserNotificationCenterDelegate {
// foreground에서 시스템 푸시를 수신했을 때 해당 메소드가 호출
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.sound, .badge, .banner])
}
}
- Signing & Capabilities > + Capability 에서 Push Notification 선택
- 시뮬레이터 실행 > cmd 심볼 클릭 > permission이 필요하다고 나오면, permission 설정 버튼을 누르고 디렉토리가 나오면 바로 open 버튼 누르면 아래 화면 등장
- 시뮬레이터 오른쪽에서 Test1 클릭하면 푸시 노티피케이션 도착
번외) .apns파일 만들어서 테스트 방법
- 확장자 명을 .apns로 생성
- 일반 푸시 json 형식과 동이랗게 설정 후 Simulator Target Bundle이라는 키값과 bundle id 값을 추가
(test3.apns)
{
"Simulator Target Bundle": "com.jake.ExPushNotification",
"aps": {
"alert": {
"title": "푸시 테스트",
"body": "iOS 앱 개발 알아가기 jake 블로그"
}
}
}
- simulator에 드래그하면 푸시 노티피케이션 동작
* 참고
https://www.avanderlee.com/workflow/testing-push-notifications-ios-simulator/
'iOS 응용 (swift)' 카테고리의 다른 글
Comments