3

Xcode 4를 사용하여 제작 된 스토어에 뉴스 스탠드 앱이 있습니다. iOS를 실행하는 기기의 경우 앱에 더 이상 원격 알림이 전송되지 않습니다 앱이 배경에있을 때 7. 장치가 포 그라운드에 있으면 알림이 수신되고 처리됩니다.애플리케이션이 iOS 7의 뉴스 스탠드 알림에 응답하지 않음 (iOS 6 이전 버전에서 작동 중임)

또한 이러한 알림은 iOS 6 이하 버전을 실행하는 기기에서 적절하게 처리되고 처리됩니다.

장치에서 영구 로깅을 사용하면 - [UIApplication application: didReceiveRemoteNotification:]이 호출되지 않지만 iOS 7 장치가 알림을 수신하는 것을 볼 수 있습니다.

아이폰 OS 5/6/7을 실행하는 장치에 대한 장치 로그를 평가, 우리는 원격 통지가 오는 참조 :

아이폰 OS 7이 알림에
Oct 24 11:24:22 iPad-Retina apsd[82] <Warning>: 2013-10-24 11:24:22 +0200 apsd[82]: <APSCourier: 0x14d8c7b0>: Received message for enabled topic 'com.companyname.ourapp' with payload '{ 
     aps =  { 
     "content-available" = 1; 
     importantInformation = @"23"; 
     sound = ""; 
    }; 
    }' onInterface: NonCellular for device token: NO with priority (null) 

는 이전 버전에서 응용 프로그램에 전달되지 않고, iOS의 경우 다음 메소드를 호출합니다.

Oct 24 11:24:20 Pad2-3G Magic[1328] <Warning>: -[ApplicationDelegate application:didReceiveRemoteNotification:] 

Google 뉴스 스탠드 알림이 성공적으로 처리되었습니다.

iOS 6 SDK를 사용하여 iOS 7 기기의 성공적인 뉴스 스탠드 다운로드 작업을 보장 할 수있는 방법이 있습니까?

Xcode 5와 iOS 7 SDK를 사용하지 않는 대답은 적어도 지금은 앱을 다시 디자인 할 때까지는 바람직합니다.

답변

2

사전에

덕분에 우리는 다음과 같은, 가정을 사용하여 문제를 해결하기 위해 관리 :

아이폰 OS 7 UIApplicationDelegate-application:didReceiveRemoteNotification:fetchCompletionHandler: 도입을, 우리는 아마도 알림이 수신되지 않은 이유는 것을 가정했다 iOS가 응용 프로그램 위임자가 새로운 선택기에 응답하는지 확인하기 위해 테스트를 수행했습니다.

당연히 Xcode 4에는 UIBackgroundFetchResult이 없으므로이 방법은 NSUInteger을 사용하여 간단히 구현할 수 있습니다. 그래서 우리는 우리의 응용 프로그램의 위임에 방법을 추가 :

- (void)application:(UIApplication *)application 
    didReceiveRemoteNotification:(NSDictionary *)userInfo 
    fetchCompletionHandler:(void (^)(NSUInteger result))handler 
{ 
    [self application:application didReceiveRemoteNotification:userInfo]; 
    handler(0); 
} 

는 또한, 우리는 응용 프로그램을 plist에 UIBackgroundModes에 원격 알림을 추가했다.

모든 iOS 7 기기에 Xcode 4를 사용하여 코드를 빌드하면 문제가 성공적으로 해결되어 Google이 상점에 제출할 수 있습니다.

이 답변이 같은 위치에있는 다른 사용자에게 도움이되기를 바랍니다.