Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iPhone:对生产证书进行推送通知测试_Ios_Apple Push Notifications_Production Environment - Fatal编程技术网

Ios iPhone:对生产证书进行推送通知测试

Ios iPhone:对生产证书进行推送通知测试,ios,apple-push-notifications,production-environment,Ios,Apple Push Notifications,Production Environment,我有一个简短的问题。我一直在测试我的iPhone应用程序的开发推送通知证书,它运行良好。我只是想知道,在将应用程序提交到AppStore之前,是否可以测试生产证书?我确实尝试过,但当我使用生产证书时,消息并没有出现。当我使用生产证书时,苹果是否要求应用程序在AppStore中 谢谢。如果您创建一个临时配置文件,您会发现它使用生产证书,这可能是测试它的最简单方法 更新: 看 实现这一点有很多步骤,但本质上是 1) 团队负责人需要创建新的分发资源调配配置文件。这是通过在创建新配置文件时选择“临时”而

我有一个简短的问题。我一直在测试我的iPhone应用程序的开发推送通知证书,它运行良好。我只是想知道,在将应用程序提交到AppStore之前,是否可以测试生产证书?我确实尝试过,但当我使用生产证书时,消息并没有出现。当我使用生产证书时,苹果是否要求应用程序在AppStore中


谢谢。

如果您创建一个临时配置文件,您会发现它使用生产证书,这可能是测试它的最简单方法

更新:

实现这一点有很多步骤,但本质上是

1) 团队负责人需要创建新的分发资源调配配置文件。这是通过在创建新配置文件时选择“临时”而不是“应用商店”来实现的。请注意,您不能为此使用通配符应用程序id,您需要为应用程序指定一个特定的应用程序id,尽管您可能已经有了这个id

2) 设置您的系统,以便build for archive使用新创建的特殊配置,设置此配置所需的步骤已在网上详细记录

3) 现在,当您将.ipa分发到链接到临时资源调配配置文件的设备时,您会发现推送通知系统正在使用生产服务器

顺便说一下,我发现TestFLUTApp对于管理Ad Hoc构建的分发非常有用,虽然我最近才发现它,但在运行beta测试程序的过程中,它节省了我几个小时。 如果您希望节省更多时间,并在生产环境中测试这些通知,而无需每次生成和分发通知,请执行以下步骤:

  • 创建并安装您的分发资源调配配置文件
  • 使用发布配置而不是调试创建一个新方案(有关说明,请参阅文章的第二部分),然后选择它
  • 确保在应用程序的目标生成设置下为发布配置选择了分发配置文件
  • 摇滚乐
    如何创建新方案
  • 单击左角的应用程序名称:

  • 选择“新建方案…”并为其命名

  • 然后,再次打开此菜单进行编辑,并选择“编辑方案…”
  • 在“构建配置”下选择“发布”:

  • 选择它,使它出现在左上角,您就完成了


  • 1:您不能使用发行版或特别设置进行调试,有关特别发行版,请参见

    ,请按照以下说明进行操作:

  • 在配置门户中,创建分发证书
  • 获取您打算用于测试的iPhone的“设备ID”。打开iTunes->连接您的设备->选择您的设备->在摘要窗格中,单击序列号标签,它将更改为标识符(40个十六进制字符)->选择编辑,复制
  • 在配置门户中,转到设备->添加新设备->输入复制的设备ID并为其命名
  • 在资源调配门户中,创建分发资源调配配置文件。(转到资源调配->分发)。对于分配类型,请勾选“临时”。选择应用程序Id,如果您有分发证书,将在此处自动选择。选择新输入的设备并提交。下载此配置文件
  • 在Xcode中,窗口->组织者。单击设备并选择库->配置文件。如果您是管理员,那么单击Refresh应该获取新创建的配置文件。如果没有,请将临时资源调配配置文件拖放到此列表中
  • 在Xcode中,在项目构建设置->代码签名标识->发布部分,选择“iPhone发行版”。对于“任何iOS SDK”,选择新创建的配置文件。它将在列表中提供
  • 在Xcode中,产品->归档。一旦完成归档,它将自动打开归档窗口。选择项目并单击分发,在分发窗口中选择“为企业或临时部署保存”->选择与新配置文件对应的“代码签名标识”。继续此过程,将创建一个“.ipa”文件
  • 发送此.ipa文件和新的配置文件以测试临时分发
  • 如何在测试设备上加载临时分布:

  • 打开iTunes,连接测试设备
  • 将新的资源调配配置文件拖放到iTunes
  • 拖放.ipa文件到iTunes
  • 同步你的设备。这将加载应用程序
  • 对于用于临时分发的推送通知:

  • 使用生产证书
  • 使用生产APN主机:gateway.push.apple.com
  • 使用生产APN反馈主机:Feedback.push.apple.com
  • 在为开发环境测试pushnotification时,有几个检查表应该牢记在心。上面已经提到了其中的大多数。但这是解决我问题的一件事,我想与大家分享。我希望它能帮助别人。也就是说:

    请注意设备令牌ID,这与开发和生产环境不同。

    - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
           NSString *deviceTokenStr = [[[[deviceToken description]
                                          stringByReplacingOccurrencesOfString: @"<" withString: @""]
                                         stringByReplacingOccurrencesOfString: @">" withString: @""]
                                        stringByReplacingOccurrencesOfString: @" " withString: @""];
           UIAlertView *alert= [[UIAlertView alloc]initWithTitle:deviceTokenStr message:Nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [alert show];
    }
    
    -(无效)应用程序:(UIApplication*)应用程序注册器用于删除deviceToken:(NSData*)deviceToken{
    NSString*DeviceTokenster=[[[deviceToken描述]
    StringByReplacingOfString:@“with String:@”]
    StringByReplacingOfString:@“和字符串:@]”发生;
    UIAlertView*alert=[[UIAlertView alloc]initWithTitle:DeviceTokenster消息:无委托:自取消按钮提示:@“确定”其他按钮提示:无];
    [警报显示];
    }
    
    谢谢你,罗杰,但你能详细说明一下特殊情况吗