如何让应用程序访问以前被拒绝的帐户?

时间:2013-01-13 23:11:07

标签: macos social-framework

我一直在使用帐户框架,在我的测试中,我拒绝了应用程序访问帐户。现在,每次运行时,以下代码都会返回Denied。

[[self accountStore] requestAccessToAccountsWithType:twitterType options:nil completion:^(BOOL granted, NSError *error) {
    if (granted) {
        accounts = [[self accountStore] accountsWithAccountType:twitterType];
    } else if (error != nil) {
        NSLog(@"Failed to list Twitter accounts %@", error);
    } else {
        NSLog(@"Access denied");
    }
}];

什么很糟糕我不知道在哪里重置它和谷歌搜索没有帮助。我已经看过如何在iOS上修复它,但我正在运行Mac应用程序并且该解决方案不适用。

帐户框架API文档根本没用。

掌上电脑。

2 个答案:

答案 0 :(得分:4)

想出来,我找到了一个名为“〜/ Library // Application Support / com.apple.TCC / TCC.db

的应用ID的文件

这是一个sqlite3文件,所以运行 sqlite3“〜/ Library // Application Support / com.apple.TCC / TCC.db”然后在“access”表中搜索你的应用程序,删除该行,您是否应该再次访问。

如果这没有帮助,那么还有一个名为〜/ Library / Accounts / Accounts3.sqlite 的文件,那里有 ZAUTHORIZATION表,其中包含您的应用。

答案 1 :(得分:1)

由于大公司和其他公司的骇人听闻的骇客入侵,提议的解决方案不再起作用。此解决方案从未得到过支持,并向黑客发出了邀请。正确的方法是使用Apple提供的工具:tccutil

因此,请执行以下操作:

  1. 打开Terminal
  2. 运行tccutil reset <service> [bundle_id],其中<service>可以是AddressBookCalendarAll,并带有要重置的捆绑软件的可选ID。

示例:

tccutil reset All com.apple.Terminal