即使我在我的应用程序中没有使用APNS,也会从苹果发出APNS警告

时间:2017-08-16 06:34:20

标签: ios swift xcode apple-push-notifications provisioning-profile

缺少推送通知权利 - 您的应用似乎注册了Apple推送通知服务,但应用签名的权利不包括" aps-environment"权利。如果您的应用使用Apple推送通知服务,请确保在配置门户中为推送通知启用了您的应用ID,并在使用包含" aps-environment"的分发配置文件签署您的应用后重新提交。权利。 Xcode 8不会在构建时自动从配置文件复制aps-environment权利。这种行为是故意的。要使用此权利,请在项目编辑器的“功能”窗格中启用“推送通知”,或者手动将权利添加到权利文件中。有关详细信息,请参阅https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1

当我将构建版本上传到测试版时,我会从Apple收到以下邮件。

自从我整合谷歌sdk并在我的应用中实施谷歌登录以来,这种情况一直在发生。

我还没有在我的应用中启用推送通知,证书也没有任何问题。即使在功能选项卡中,也会关闭推送通知

我似乎不明白问题所在。我不想启用推送通知,因为我没有在我的应用中使用它。

任何帮助将不胜感激。谢谢。

以下是我的AppDelegate供参考

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate, GIDSignInUIDelegate {
    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        let console = ConsoleDestination()
        log.addDestination(console)
        Mixpanel.initialize(token: AppConfig.mixPanelProjectToken)
        var configureError: NSError?
        GGLContext.sharedInstance().configureWithError(&configureError)

        if MixpanelTweaks.assign(MixpanelTweaks.showView) {
            navigateToView()

        }

        if  let infoPlist = Bundle.main.infoDictionary,
            let config = infoPlist["TwitterKeys"] as? Dictionary<String, AnyObject> {
            let consumer = config["consumerSecret"] as? NSString
            let consumerSecret = config["ConsumerKey"] as? NSString
            Twitter.sharedInstance().start(withConsumerKey:consumerSecret as! String, consumerSecret:consumer as! String)
        }


        // Override point for customization after application launch.
        return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
    }

    func navigateToView(){
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let initialViewController = storyboard.instantiateViewController(withIdentifier: "InitialViewNavigationController")
        self.window?.rootViewController = initialViewController
        self.window?.makeKeyAndVisible()
    }
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        let handled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])

        GIDSignIn.sharedInstance().handle(url,
                                          sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
                                          annotation: [:])

        Twitter.sharedInstance().application(app, open: url, options: options)
        return handled
    }
    func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {

    }

    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    }

    func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!,
                withError error: NSError!) {
    }

    func applicationWillResignActive(_ application: UIApplication) {

        FBSDKAppEvents.activateApp()
    }


    func applicationDidEnterBackground(_ application: UIApplication) {


    }

    func applicationWillEnterForeground(_ application: UIApplication) {

    }

    func applicationDidBecomeActive(_ application: UIApplication) {

    }

    func applicationWillTerminate(_ application: UIApplication) {
        GIDSignIn.sharedInstance().signOut()

    }   
}

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。但我的应用程序是一种模块化构建,它具有推送通知代码,但在我的代码中使用密钥明确禁用。每当我需要使用推送通知功能时。我只需要启用该密钥,并包含来自&#39;功能&#39;的推送通知权利。标签。

由于代码存在,我收到了警告,

  

&#34;缺少推送通知权利 - 您的应用包含一个API   Apple的推送通知服务,但是aps-environment权利   应用程序的签名中缺少。&#34;

。所以我从Capabilities启用了它,但没有从代码中启用它,也没有包含在Developer Portal / Member Center的App ID中。

有效我没有收到任何警告,我的应用程序在App Store上成功运行。

虽然来自Apple的这个警告已经开始来自Xcode 8.您还可以找到另一个类似的警告和解决方案&#34; Push Notification Entitlements missing&#34;从下面链接:

Xcode 8 "the aps-environment entitlement is missing from the app's signature" on submit

答案 1 :(得分:0)

这真是个汉堡。将Sentry添加为依赖项后,我得到了。但是我自己的本机代码没有调用远程通知。我收到同样的警告,但是我只是在发行说明中向审核团队解释了这一警告,并且构建已按预期批准。