我真的很难过,试图让ParseKit.framework(这个)工作一般,甚至不用去实现它,直到它运行它附带的演示应用程序.
发生了什么是编译器无法找到<Foundation/Foundation.h>或其他东西,我认为标题是在链接框架中.确切错误:"Lexical或Preprocessor Issue:'Foundation/Foundation.h'文件未找到."
这是代码,只是来自ParseKit_Prefix.pch:
//
// Prefix header for all source files of the 'ParseKit' target in the 'ParseKit' project.
//
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif
Run Code Online (Sandbox Code Playgroud)
没有什么不寻常的,我把文件路径搞砸了一些怎么样?我重新安装了Xcode,重新下载了ParseKit,没有任何帮助.这里的建议没有做任何事情,这不是这个.当我创建一个新项目或使用一个不同的项目并加载Foundation.framework和#import头时,它工作得很好.如果我取消链接框架,我找不到它再次重新链接.还有其他人有过这种问题吗?我在某处错误地下载了吗?我很难找到Xcode UI链接的东西,苹果必须得到一些令人沮丧的人,所以如果有人有什么他们能想到的请给我一些反馈,我现在非常困惑.
嗨所以我现在很困惑,不知道接下来该做什么.我花了最近两周的时间让这些推送通知正常工作,当我终于把它整齐整洁时,我把它放到一个adhoc发行包中并将服务器配置切换到生产环境,突然间什么都没有用,我没有任何错误消息.它应该工作,它应该工作,它不工作.所以我需要一些帮助,因为我迷路了.
可能的问题 -
主机配置
真正帮我把它摆在首位的工作是本教程这里,托管服务器的Heroku和应用程序是用写在西纳特拉这种宝石,如果不结转到生产环境中好歹我没有看到,请告诉我.要将环境更新为生产环境,我只更改了使用的密钥和来自gateway.sandbox.push.apple.com的主机到gateway.push.apple.com,如下所示:

APNS KEYS
我不认为是这样,但我不明白发生了什么,所以我记录了它,但我认为分配密钥有效 - 运行
openssl s_client -connect gateway.push.apple.com:2195 -cert dis_apskey.pem
Run Code Online (Sandbox Code Playgroud)
在终端中获得了与推送服务器的这种连接和事务:

我相信它意味着它有效但我不确定(参见编辑答案,这并不意味着它有效).密钥是使用以下命令创建的:
openssl pkcs12 -in aps_distribution.p12 -out dis_apskey.pem -nodes
Run Code Online (Sandbox Code Playgroud)
从iOS开发门户网站下载的APS开发和发行证书的私钥或现在称之为的私钥,导出为.p12加密文件:

虽然,虽然从不同的私钥,他们确实变得异常相似(所有字符是相同的) -

这是正常的吗?因为我从同一个CSR制作了两个推送服务证书,我不知道我完全迷失了......只是把它扔到那里,因为这些都不再有意义了.
代码签名
我相信这是正确的(来自我的xcode项目):

这些对应于我的iOS Developer Portal中的证书和移动配置文件,我已经重新生成了许多新的,用xcode刷新它们,双重检查并重新加载到这个东西,我发现很难相信这是该区域问题.但只是为了确保我发布它,这些是当前的配置文件,是在APS证书颁发后制作的.再一次,这对我来说并没有多大意义,是的,我已经阅读了文档,它仍然是希腊语.
移动设备令牌
这再次,我不认为是问题.我的应用程序使用开发配置文件生成了一个令牌,沙盒能够将通知推送到它,并且它的工作非常好!然后,当我切换到adhoc配置文件并使用生产环境构建BUT时,我的应用程序生成了一个新令牌.我再说一遍,一切都在沙箱上正常工作但现在没有.
还有其他原因吗?
这就是我所能想到的,如果有人有别的东西请告诉我.我只是希望这个工作,如果苹果将它们发送回失败的推送,我无法看到错误,所以我不知道.它在开发人员沙箱中工作,应该现在正在工作,这是我能想到的.
谢谢.
code-signing heroku production-environment apple-push-notifications ios