ios - 来自苹果的 APNS 警告,即使我没有在我的应用程序中使用 APNS

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

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

当我上传构建以进行试飞时,我收到了来自 Apple 的以下邮件。

自从我在我的应用程序中集成了 google sdk 并实现了 google 登录以来,这种情况就一直在发生。

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

我好像不太明白问题出在哪里。我不想启用推送通知,因为我没有在我的应用程序中使用它。

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

以下是我的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()

    }   
}

最佳答案

我遇到了同样的问题。但我的应用程序是一种模块化构建,它具有推送通知代码,但在我的代码中使用一个键被明确禁用。每当我需要使用推送通知功能时。我只需要启用该 key 并包含来自“功能”选项卡的推送通知权利。

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

"Missing Push Notification entitlements- Your app includes an API for Apple's Push Notification service, but the aps-environment entitlement is missing from the app's signature."

.所以我从 Capabilities 启用了它,但没有从代码启用它,也没有包含在我在开发者门户/成员(member)中心的 App ID 中。

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

尽管 Apple 的这个警告已经开始来自 Xcode 8。您还可以从下面的链接中找到另一个类似的警告和“Push Notification Entitlements missing”的解决方案:

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

关于ios - 来自苹果的 APNS 警告,即使我没有在我的应用程序中使用 APNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706548/

相关文章:

ios - Apache Cordova/Visual Studio 2015 工具无法在 IOS 模拟器中启动应用程序

Swift 类自定义类型属性

swift - 如何在函数中设置静态变量的属性

ios - 在 swift 一定时间后执行代码操作

ios - Parse.com 存储 boolean 数组

ios - ScrollView 上绘制的线条不是滚动的?

ios - 在 xib 中分配的图像是否已缓存?

ios - 在像 snapchat/whatsapp 这样的 iOS 应用程序中实现手机号码验证系统的灰色地带

Swift - EPSG 坐标转换 :4326 to 3857

c++ - XCode 警告 "Instantiation of variable ' Singleton<Foo>::_instance' 这里需要,但没有可用的定义