缺少推送通知权利 - 您的应用似乎注册了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()
}
}
答案 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添加为依赖项后,我得到了。但是我自己的本机代码没有调用远程通知。我收到同样的警告,但是我只是在发行说明中向审核团队解释了这一警告,并且构建已按预期批准。