当我有推送通知时,我是不是需要分发构建的权利文件?

Posted

技术标签:

【中文标题】当我有推送通知时,我是不是需要分发构建的权利文件?【英文标题】:Do I need an Entitlements file for Distribution builds when I have push notifications?当我有推送通知时,我是否需要分发构建的权利文件? 【发布时间】:2011-12-14 22:14:41 【问题描述】:

我的应用被拒绝,原因是: “我们发现您的应用无法在运行 ios 5.0.1 的 iPhone 4 上启动,无论是在 Wi-Fi 还是蜂窝网络上。”

我不确定原因,因为临时构建很好,但后来我看到了两件事可能会影响它。

    我的编译器标志仅用于临时构建而不是分发。这些是由于 AdMob 而添加的。猜猜这可能是原因吗?

    -v -v -v -gcc_flags "-framework AudioToolbox -framework MessageUI -framework SystemConfiguration -L$ProjectDir/libs -lGoogleAdMobAds -force_load $ProjectDir/libs/libGoogleAdMobAds.a"

    我发现了很多关于临时授权文件的帖子,但我需要它来生产吗?我将我的 Entitlements.plist 添加到 MonoTouch 中的“自定义权利”条目中,但不确定是否需要它。这可能是原因吗?权利文件在这里: ...

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"   "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>get-task-allow</key>
      <false/>
      <key>application-identifier</key>
      <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
      <key>keychain-access-groups</key>
      <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
      </array>
    

【问题讨论】:

【参考方案1】:

我的编译器标志仅用于临时构建而不是分发。这些是由于 AdMob 而添加的。猜猜这可能是原因吗?

可能是这样。这取决于绑定(它们是如何编写的)以及您的应用程序是如何编写的(错误管理)。

一个快速测试是尝试从您的临时构建中删除它,以查看应用程序在启动时是否崩溃。如果确实如此,那么您可以假设 Apple 在审核您的申请时也会发生同样的情况。

我发现了很多关于临时授权文件的帖子,但我需要它来生产吗?

我自己没有尝试过,但Push Notification is not working? 的答案指向创建的document,它描述了您需要如何创建 App ID 并为推送通知服务提供开发和生产 SSL 证书。

您应该查看文档并确保您的设置匹配。

【讨论】:

以上是关于当我有推送通知时,我是不是需要分发构建的权利文件?的主要内容,如果未能解决你的问题,请参考以下文章

推送通知在 iOS 5.0.1 上不起作用

如何从我的 iOS 应用程序中删除推送通知?

Xcode 12.2 中的错误:配置文件不包括推送通知权利

缺少推送通知权利?

在 Adhoc 构建的情况下推送通知过期时间

Apple 推送通知开发与分发配置文件