如何创建要存储在托管服务器中的.pem文件以获取APN有效负载数据?
我的应用程序启用了后台获取背景模式并且我验证了plist包含适当的获取模式.
我还配置了如下间隔:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我已经添加了处理程序如下:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
// Get some new data here
completionHandler(UIBackgroundFetchResult.NewData);
}
Run Code Online (Sandbox Code Playgroud)
我尝试去调试 - >模拟背景提取,但不管它从未进入过什么performFetchWithCompletionHandler.我还尝试在一个方案下运行应用程序,该方案选中了"由于后台获取事件而启动"选项.在这种方案下运行只需在模拟器中像往常一样启动应用程序而不需要调用performFetchWithCompletionHandler.
有任何想法吗?
谢谢!
编辑:这似乎正在影响我的应用程序的发布版本,所以它可能不会被隔离到模拟器.我正在运行Swift 1.2.
编辑2:我的错误报告刚刚关闭,因为它是另一个错误报告的副本,概述了同样的问题.仍然没有确认问题与模拟器隔离的信息.
编辑3:没有提到Xcode 6.4 Beta 2发行说明中的修复程序.:-(
我已经创建了开发和生产pem文件.我已按照以下步骤操作:
1)developer.apple.com:AppIDs部分检查Bundle id支持开发SSL证书,如果没有则创建该证书(支持APNS)
2)打开钥匙链
3)右键单击我们的证书和出口证书.
4)你将从这里得到.p12文件:like:hope_APNS.p12
5)打开控制台(终端)并运行以下命令(在此处使用创建的.p12文件作为输入)openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
6)你将获得相同的.pem文件.(如hope_APNS.pem)
开发pem文件工作正常.但是有一些生产pem文件.当我设置生产pem文件并从控制台发送推送通知.我不会推动我的设备.
使用此链接生成用于推送通知的pem文件,但我无法理解以下步骤...
在服务器上安装SSL证书和密钥
您应该在运行提供程序代码的服务器计算机上安装先前获得的SSL分发证书和私有加密密钥,并从中与沙箱或生产版本的APN连接.为此,请完成以下步骤:
打开Keychain Access实用程序,然后单击左窗格中的"我的证书"类别.
找到要安装的证书并公开其内容.您将看到证书和私钥.
选择证书和密钥,选择"文件">"导出项目",然后将其导出为个人信息交换(.p12)文件.
以Ruby和Perl等语言实现的服务器通常能够更好地处理个人信息交换格式的证书.要将证书转换为此格式,请完成以下步骤:
在KeyChain Access中,选择证书并选择"文件">"导出项目".选择"个人信息交换(.p12)"选项,选择保存位置,然后单击"保存".
启动终端应用程序并在提示符后输入以下命令:openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes.
将.pem证书复制到新计算机并将其安装在适当的位置.
ssl-certificate push-notification apple-push-notifications ios
我已按照此答案中提到的步骤创建开发证书和配置文件.我正在尝试实现FCM并在真实设备中运行Nativescript应用程序.以下是我为构建项目所遵循的步骤:
appbuilder provision import path/to/provisionappbuilder certificate import path/to/p12/certappbuilder build ios --provision "XXXX" --certificate "XXXX"但它确实给了我错误
证书不包含在条款的证书中
如果我做错了,请纠正我.如果你已经通过这个,建议一些解决方案,因为我是这个东西和Nativescript的新手.
PS我也尝试过为appbuilder网站提供服务,它也会在证书字段中显示一些警告 
这是APNS的许可
更新:
如@Eddy Verbruggen(作者NativeScript Firebase插件)所述
我在电子邮件发送后询问了Telerik,他们确认这是他们浏览器客户端的一个错误,希望尽快修复.他们为它创造了一张票.
apple-push-notifications ios telerik-appbuilder nativescript firebase-cloud-messaging
我参考了这个教程.http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 ..运行此代码时,它显示已成功发送,但消息未出现在设备上.我做了APNS的完整步骤,
这是我试过的,我错了?提前致谢
PHP代码:
<?php
// Put your device token here (without spaces):
$deviceToken = 'Device Token';
// Put your private key's passphrase here:
$passphrase = 'pushchat';
// Put your alert message here:
$message = 'My first push notification!';
////////////////////////////////////////////////////////////////////////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// Open a connection to the APNS server
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ios设置SNS推送通知,并在完成一些教程后,我收到此错误消息.我不确定我目前使用的"类型"证书目前是不支持的,或者如何提供"更好"的证书.任何帮助表示赞赏.
尝试了aws教程并在第4步(步骤4:验证证书和应用程序私钥)我收到一个错误:
错误设置私钥9940:错误:0B080074:x509证书例程:X509_check_private_key:键值不匹配:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/crypto/x509/x509_cmp .C:406:
和
我得到了令人困惑的地方"你提供了目前不支持的证书类型."
我从钥匙串导出 .cer 文件并使用以下命令尝试在 .pem 文件中进行转换,但导致 .pem 文件丢失
-----开始私钥-----
请任何人都可以提供另一种方法来做到这一点
命令就像
openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem
Run Code Online (Sandbox Code Playgroud) ios ×7
iphone ×1
keychain ×1
nativescript ×1
objective-c ×1
payload ×1
php ×1
swift ×1
xcode ×1