将app上传到appstore

时间:2012-01-31 10:18:11

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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


编辑:好吧,我推动使用Ad-Hoc配置文件。首先,我建议您从github下载以下项目,这对于测试开发和生产推送非常方便:

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

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

答案 1 :(得分:2)

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

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

而不是

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

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

<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