iPhone 애플리케이션없이 Apple Push Notification Services를 테스트 할 수 있습니까? (Windows에서 에뮬레이터를 만드시겠습니까?)
그렇지 않은 경우 어떻게 테스트 할 수 있습니까? 이를 위해 컴파일 된 무료 샘플 애플리케이션이 있습니까?
서버 공급자를 만들었지 만 기능을 테스트해야합니다.
답변
이 답변은 구식 입니다. 2020 / Xcode 11.4부터 시뮬레이터에서 푸시 알림을 테스트 할 수 있습니다.
아래 답변 에서 전체 설명을 참조하십시오.
죄송합니다.이 기능을 테스트하려면 하드웨어를 찾아야합니다.
시뮬레이터에서는 푸시 알림을 사용할 수 없습니다. iTunes Connect의 프로비저닝 프로파일이 필요하므로 장치에 설치해야합니다. 그것은 또한 당신이 아마도 애플 아이폰 개발자 프로그램에 가입하고 $ 99를 지불해야한다는 것을 의미합니다.
밝은면에서는 iPhone OS 3.0 업데이트를 통해 1 세대 iPhone을 포함한 모든 장치에서이 기능을 테스트 할 수 있습니다.
답변
실제 푸시 알림은 테스트 할 수 없습니다. 그러나 프로그래밍 방식으로 하나를 만들고 AppDelegate의 메서드를 수동으로 트리거하여 시뮬레이션 된 푸시 알림에 대한 앱의 응답 을 테스트 할 수 있습니다 - application:application didReceiveRemoteNotification:notification
.
다른 클래스 (예 : UIViewController)에서이를 트리거하려면 :
[[[UIApplication sharedApplication] delegate]
application:[UIApplication sharedApplication]
didReceiveRemoteNotification:testNotification];
testNotification은 실제 알림과 동일한 형식이어야합니다. 즉, 속성 목록 개체와 NSNull이 포함 된 NSDictionary입니다.
testNotification
위의 정보 를 제공하는 방법의 예는 다음과 같습니다 .
NSMutableDictionary *notification = [[NSMutableDictionary alloc] init];
[notification setValue:@"Test" forKey:@"alert"];
[notification setValue:@"default" forKey:@"sound"];
NSMutableDictionary *testNotification = [[NSMutableDictionary alloc] init];
[testNotification setValue:notification forKey:@"aps"];
작업 할 합리적인 알림 NSDictionary를 만들어야합니다.
답변
요즘에는 이 라이브러리로 푸시 알림을 테스트 할 수 있습니다 .
터미널을 통해 푸시를 보내는 것은 매우 쉽습니다.
echo -n '{"message":"message"}' | nc -4u -w1 localhost 9930
echo -n '{"aps":{"alert" : "message","badge" : 99,"sound" : "default"}, "myField" : 54758}' | nc -4u -w1 localhost 9930
답변
Xcode 11.4 iOS 시뮬레이터를 사용하여 푸시 알림 테스트
현재 엑스 코드 11.4 ,으로 푸시 알림을 시뮬레이션 할 수있게되었습니다 드래그 앤 드롭.apns
아이폰 OS 시뮬레이터에 파일을. 엑스 코드 11.4 릴리스 노트는 새로운 기능에 대해 할 말이 다음을 가지고 :
Simulator는 백그라운드 콘텐츠 가져 오기 알림을 포함한 원격 푸시 알림 시뮬레이션을 지원합니다. Simulator에서 APNs 파일을 대상 시뮬레이터로 끌어다 놓습니다 . 파일은 “aps”키를 포함하여 유효한 Apple Push Notification Service 페이로드가있는 JSON 파일이어야합니다 . 또한 최상위 “시뮬레이터 대상 번들”을 포함해야합니다. 대상 응용 프로그램의 번들 식별자와 일치하는 문자열 값이있는 을 .
simctl
시뮬레이션 된 푸시 알림 전송도 지원합니다. 파일에 “Simulator Target Bundle”이 포함 된 경우 번들 식별자가 필요하지 않습니다. 그렇지 않으면 인수로 제공해야합니다 (8164566).
xcrun simctl push <device> com.example.my-app ExamplePush.apns
예
다음은 .apns
시스템 설정 앱을 대상으로하는 이러한 파일 의 예입니다 .
{
"Simulator Target Bundle": "com.apple.Preferences",
"aps": {
"alert": "This is a simulated notification!",
"badge": 3,
"sound": "default"
}
}
이것을 대상 시뮬레이터로 드래그 앤 드롭하면 알림이 표시되고 배지가 설정됩니다.
이제 디버깅을 위해 이것을 사용하기 만해야 을 변경 Simulator Target Bundle
하여 자신의 응용 프로그램의 식별자 와 페이로드를 조정 하여 디버깅 요구에!
답변
시뮬레이터는 푸시 알림을 수행하지 않습니다.
그리고 서버에서 푸시하려면 푸시 할 디바이스와 해당 디바이스의 앱이 있어야합니다.
토큰에는 앱 ID와 기기 ID가 포함됩니다.
답변
Apple은 시뮬레이터에 대한 푸시 알림을 지원합니다. iOS 13.4 이상 또는 Xcode 11.4 이상.
일반적으로 Xcode 프로젝트를 만들고 사용자 알림 및 권한 부여 권한을 구현합니다.
시뮬레이터 iOS 13.4 이상 에서 애플리케이션을 실행합니다 .
애플리케이션을 백그라운드에 둡니다.
- ” payload.apns ” 라는 이름의 APNS 페이로드 파일을 만듭니다.
{
"aps": {
"alert": {
"title": "Test Push",
"body": "Success! Push notification in simulator! ?",
"sound": "default"
},
"badge": 10
},
"Simulator Target Bundle": "com.company.app"
}
- iOS 시뮬레이터로 드래그 앤 드롭합니다.
지금 당신의 푸시 알림이 시뮬레이터에 나타날 것입니다.
또한 터미널별로 푸시 알림을 시뮬레이션 할 수 있습니다.
Window-> Devices and Simulators 를 열어 시뮬레이터 식별자를 얻고 대상 시뮬레이터를 선택한 다음 마우스 오른쪽 버튼을 클릭하고 식별자를 복사합니다.
이제 다음과 같은 터미널 명령을 작성하십시오.
xcrun simctl push <simulator-identifier> <path-to-payload-file>
전의:
xcrun simctl push 27A23727-45A9-4C12-BE29-8C0E6D1E5360 payload.apns
이 명령을 실행하고 시뮬레이터에서 푸시 알림을 시뮬레이션하십시오.
답변
당신은 사용해야합니다
NSString *notificationString = @"{\"aps\":{\"alert\":\"Test alert\",\"sound\":\"default\"}}";
NSData *notificationData = [notificationString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *testNotification = [NSJSONSerialization JSONObjectWithData:notificationData options:0 error:&error];
[[[UIApplication sharedApplication] delegate] application:[UIApplication sharedApplication] didReceiveRemoteNotification:testNotification fetchCompletionHandler:nil];
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)