2012-10-26 53 views
2

我有一個應用程序崩潰記錄器,它通過從ABAddressBook獲取用戶電子郵件地址來自動填充。我試圖在10.8顯示詢問用戶許可的對話框中獲得有意向的信息。繼http://www.red-sweater.com/blog/2672/can-i-get-your-address的建議,我已經添加了以下到應用程序的Info.plist:讓NSContactsUsageDescription在10.8.2中工作

<key>NSContactsUsageDescription</key> 
<string>blah blah blah</string> 

不幸的是,這是行不通的。該對話框仍然要求,但它不顯示我的描述文字。我試過了:

  • 把它放在crash記者框架的Info.plist中,而不是應用程序的。
  • 使用我的開發人員ID證書籤署應用程序。

但是,唉,沒有運氣。任何人得到這個工作,可以給我一個小費,我做錯了什麼?

回答

2

[更新]我發現真實重新啓動有幫助的原因。它殺死了tccd進程,這看起來像負責在該對話框上顯示消息的罪魁禍首。

因此,只要打開活動監視器並殺死tccd進程,並且您的新消息應該在下次顯示對話框時顯示。

[舊答案] 我遇到了同樣的問題,並不確定爲什麼(我正在做文檔所要做的)。我終於得到了它的工作後:

  • 刪除容器我的應用程序住在(〜/資源庫/集裝箱/ com.company-name.app名)
  • 清潔構建(在Xcode中:產品 - >清潔)
  • 重新啓動我的機器(似乎有點貨物邪教,但我認爲這是固定的問題)
  • 構建和運行我的應用程序

下一次我的應用程序試圖訪問地址簿API我被提供了對話框包括我的信息。

我認爲蘋果公司必須在某個地方緩存該消息(如果您在顯示消息之前先運行代碼,那麼要麼是所需的消息,要麼是一個空字符串),並且清除它的唯一方法是重新啓動。我多次嘗試了前兩個步驟,消息沒有任何變化,即使在我收到消息後仍嘗試更改消息。