2

我正在尝试将我的应用程序从 iOS SDK 3.0 更新到 SDK 3.1,但在使 URL 方案后缀正常工作时遇到问题。我的应用程序有几个不同的 SKU,并且已经成功地将“ipad”和“iphone”的方案后缀与 pre-3.1 SDK 一起使用。

在实现 3.1 SDK 并获得读取权限时,Facebook 应用程序不再将我发送回我的应用程序(这是在 iOS6 中不使用集成 Facebook 登录时)。我注意到,如果我删除了 URL 方案后缀,登录过程会按预期工作,并且在对权限说“OK”后我会被发送回我的应用程序。只需将 info.plist 更改为不包含后缀即可使其工作;添加回来会破坏它。

那么我的问题是:URL 后缀是否适用于 3.1 更新的任何人?我无法确认他们是否在工作。该更新似乎确实改变了身份验证流程,但我不明白为什么会故意删除它。另外,Facebook上的这个错误是否相关?http://developers.facebook.com/bugs/183527235116115

最后,既然我觉得在这个问题解决之前我不能更新,那么不立即更新 SDK 会有什么后果呢?我讨厌我的应用程序崩溃,因为旧的身份验证方法被杀死了。Facebook 是否有关于旧身份验证何时不可用的路线图?

4

2 回答 2

1

检查这些事情:

  • 您的应用程序的 info.plist 文件中有一个 FacebookAppID 属性

  • 你有一个为你的应用定义的 URL Scheme。此方案必须包含您要使用的后缀。

  • 在调用 FB API 之前设置 URL Scheme 后缀。

  • URL Scheme 后缀仅包含小写字母(没有破折号等特殊字符;没有空格)

我被最后一点卡住了大约一天!

编辑:plist 中的 FacebookID 应称为 FacebookAppID(类型字符串)

rgds

于 2012-10-25T11:53:40.233 回答
0

您究竟是如何创建和打开会话的?

我认为您必须使用两步法:

  1. initWithAppID:permissions:urlSchemeSuffix:tokenCacheStrategy:
  2. openWithCompletionHandler:

我不确定这是否已从 SDK 的 3.0 版本更改为 3.1 版本。

于 2012-11-15T13:30:45.293 回答