【问题标题】:Uploading app to appstore将应用上传到应用商店
【发布时间】:2012-02-23 01:40:54
【问题描述】:

我创建了一个使用 APNS 的应用程序。当我使用开发人员证书并且工作正常时,我收到了推送通知。我通过 Adhoc 方法安装了它。现在我需要将我的应用上传到应用商店。我使用分发证书构建我的应用程序并将其也放入服务器中,但没有收到任何通知。这是我第一次这样做。我经历了很多论坛,遇到了很多情况。一是,令牌ID(我认为它与设备令牌相同)在开发和生产模式下应该不同,但我得到相同的令牌ID。但我仍然不确定这个问题。 所以我有一些问题,上传到应用商店时,我应该在我的应用和服务器上使用哪个证书?我应该使用沙盒还是生产服务器? 请给我一个清晰的想法。 谢谢

【问题讨论】:

    标签: iphone app-store distribution apple-push-notifications


    【解决方案1】:

    沙盒证书用于开发,生产证书用于提交 AppStore 的应用。正确的证书链接到开发配置文件或分发 (AppStore) 配置文件。

    要记住的一件事是,如果您在创建原始配置文件之后创建推送证书,则重新创建配置文件。如果为您的应用启用了推送,则配置文件应包含“aps-environment”字符串,否则推送将不起作用。如果您的应用程序最初不包含推送(此功能 - 包括证书 - 稍后添加),则开发和 AppStore 的配置文件将不包含“aps-environment”字符串,因此推送不会工作。

    您可以在文本编辑器中打开您的配置文件并查找“aps-environment”字符串以确保它存在。这是我一直遇到的 push 的主要问题,所以我猜你也遇到了这个问题。

    配置文件的重新创建很容易,只需在 Apple Developer 门户上打开它们,更改一些设置并保存即可。下载并安装新的配置文件以使用它。


    编辑:好吧,我使用 Ad-Hoc 配置文件进行了推送。首先推荐你从github下载以下项目,非常方便测试开发和生产推送:

    https://github.com/Zambiorix/Apple-Push-Notification-Test

    接下来我想知道您是否能够调试应用程序。如果您能够调试应用程序,那么您没有使用 Ad-Hoc 配置文件。当您尝试使用 Ad-Hoc 配置文件进行调试时,应用将启动,然后出现崩溃(一些消息涉及 get-task-allow)。

    【讨论】:

    • 我检查过了,它包含 aps-environment 字符串。
    • 你真的把应用上传到AppStore了吗?
    • 还没有,在此之前我正在使用推送通知的分发证书对其进行测试。
    • 我相信只有在您的应用在 AppStore 上发布后,您才能“看到”分发证书的工作情况。 编辑:根据我的阅读,分发证书也可以使用 Ad-Hoc 构建进行测试。
    • 今天我将自己尝试(使用 AdHoc 证书和配置文件的生产推送),因为我刚刚发现 AdHoc 可以用于生产推送。如果我可以让它工作,我会告诉你我已经采取的步骤。
    【解决方案2】:

    Wolfgang Schreurs 提到的所有上述内容,除此之外,请确保在测试您使用的临时捆绑包的推送通知时

    ssl://gateway.push.apple.com:2195

    而不是

    ssl://gateway.sandbox.push.apple.com:2195

    由于苹果也为 AdHoc 配置文件使用生产标识符,如果您使用文本编辑器打开它,以下将是 adhoc/分发配置文件中的详细信息。

    <key>Entitlements</key>
        <dict>
            <key>application-identifier</key>
            <string>something.com.yourappname</string>
            <key>aps-environment</key>
            <string>production</string>                      <--Notice This 
    

    如果您检查开发配置文件,它会是这样的,

    <key>Entitlements</key>
        <dict>
            <key>application-identifier</key>
            <string>something.com.yourappname</string>
            <key>aps-environment</key>
            <string>development</string>                     <--Notice This
    

    【讨论】:

    • 是的,这是在我的个人资料中 Entitlementsapplication-identifiersomething.com.myappnameaps-environmentproductionget-task-allow
    • 发送通知您使用哪个网址?您使用基于 PHP 或 .Net 的代码吗?
    • 我使用的是 gateway.push.apple.com 和 .Net。现在让我检查一下您提到的链接。
    • 还有一个,我有 distribution_identity.cer 和 production_identity.cer 和 adhoc.mobileprovision 证书。我应该使用哪种组合?现在我将 adhoc.mobileprovision 证书与 distribution_identity.cer 一起使用。那正确吗?如果是,production_identity.cer 的目的是什么?
    • 在我们之前的一个项目中,我们使用github.com/arashnorouzi/Moon-APNS这个dotnet代码来发送推送通知。它使用起来非常简单,我们只需要传递从钥匙串导出的 .p12 文件。
    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多