小编dun*_*nc4的帖子

SFSafariViewController删除OAuth2 Cookie

我有一个iOS应用程序,使用OAuth2在Uber API中进行身份验证UIWebView.升级到iOS 9时,我遇到了ATS阻止登录页面的https请求的问题.然后我为优步登录页面添加了一个例外,但随后注意到登录页面向Facebook,亚马逊网络服务和其他网站发出了几个其他请求,这些请求都被ATS阻止.

我不想维护优步登录页面的例外列表,因为优步可以轻松更改其页面,我的应用程序将没有正确的例外.所以我决定SFSafariViewController试一试.

我能够完成OAuth2进程SFSafariViewController,问题是当身份验证完成时,Uber会存储某种类型的cookie.如果我想验证其他帐户并SFSafariViewController再次启动,则会从之前的身份验证中获取Cookie,并且无法对其他帐户进行身份验证.我UIWebView通过删除cookie来解决这个问题NSHTTPCookieStorage,但我没有看到从中删除cookie的方法SFSafariViewController.

oauth ios uber-api ios9

19
推荐指数
1
解决办法
6016
查看次数

CoreData ManagedObjectContext递归保存错误

我的一些用户在执行保存时遇到CoreData错误.我无法在网上找到有关此错误的任何信息或如何表示堆栈跟踪.

错误消息是attempt to recursively call -save: on the context aborted, stack trace,下面有完整的错误消息.

任何人都有任何关于如何弄清楚出了什么问题的提示或想法?

Error Domain=NSCocoaErrorDomain Code=132001 "(null)" UserInfo={message=attempt to recursively call -save: on the context aborted, stack trace=(
0   CoreData                            0x0000000188cbe70c  + 164
1   Primetime                           0x0000000100077ea4 Primetime + 130724
2   Primetime                           0x00000001000ae988 Primetime + 354696
3   Primetime                           0x0000000100081674 Primetime + 169588
4   Primetime                           0x00000001000802ac Primetime + 164524
5   CoreData                            0x0000000188d8bbd4  + 4568
6   CoreData                            0x0000000188d8a9ec  + 124
7   CoreFoundation                      0x00000001869ac24c  + 20
8   CoreFoundation                      0x00000001869ab950  + 400
9 …
Run Code Online (Sandbox Code Playgroud)

core-data nsmanagedobjectcontext ios

16
推荐指数
1
解决办法
3642
查看次数

应用程序扩展中的安全范围书签

我正在创建一个 TodayWidget 应用程序扩展,它显示有关用户在应用程序目录之外选择的文件夹的信息。

在我的主应用程序中,我可以通过 NSOpenPanel 使用 powerbox 来选择文件夹。然后,我可以将安全范围书签保存到我的 TodayWidget 可访问的应用程序组容器的用户默认值。

TodayWidget 可以读取书签数据,但是当它调用URLByResolvingBookmarkData 时,它会出错:

The file couldn’t be opened because it isn’t in the correct format.

我的主应用程序和 TodayWidget 都具有以下权利:

  • com.apple.security.files.bookmarks.app-scope
  • com.apple.security.files.user-selected.read-only

根据 Apple 的文档,只有创建安全范围书签的应用程序才能使用它。我猜这些意味着不允许嵌入式应用程序?

我已经考虑使用 XPC,但这并不能真正解决问题,因为 XPC 也不能使用安全范围的书签,只能使用普通书签。一旦计算机重新启动,XPC 进程将失去对目录的访问权限。

我真正需要的只是一种让 XPC 进程获得对用户指定目录的读取访问权限的方法。有没有办法不必每次重新启动计算机都重新启动我的主应用程序?

macos cocoa xpc security-scoped-bookmarks

6
推荐指数
1
解决办法
1615
查看次数