由於我使用的是Xcode 9,因此與鑰匙串通信的所有單元測試均已中斷。它也發生在Xcode GM上。正如我追蹤到的,在讀寫時沒有OSStatus
錯誤,但從鑰匙串中讀取並不會返回任何結果,並導致使用鑰匙串的所有單元測試都失敗。當Apple發佈帶有iOS 10模擬器的Xcode 8時,我已經遇到類似這樣的情況,該模擬器的keychain無法正常工作,並且Apple在Xcode 8.2中修復了此問題。其他人是否也面對iOS 11模擬器的這個問題?對此有何想法?從Keychain中讀取Xcode 9模擬器不會返回任何信息
回答
最後我們發現了這個問題。正如@Gix所說,問題出在我們框架內的單元測試。 SDK測試沒有應用上下文,所以沒有可用的鑰匙串。但實際上,我們並不想像@Gix那樣將測試從SDK移動到應用程序中。所以我們可以通過在SDK項目中添加一個應用程序目標來解決問題,然後將其設置爲SDK單元測試的主機。現在單元測試已通過。但我仍然不明白爲什麼它只在新的xCode失敗。我們意識到它不是iOS 11模擬器問題,因爲xCode9中的iOS 10模擬器也發生了同樣的故障。所以這個限制是xCode9模擬器應用程序的一個屬性,可以通過我提供的解決方案來修復。它仍然是混亂的,但它的工作原理,你不需要將測試從SDK移動到應用程序!
同樣在這裏,自Xcode 9以來,除非我將AppTarget添加到我的框架中,否則Keychain的單元測試失敗。 – zero3nna
剛剛發現在我身邊,所以我想我會讓你知道,如果你有同樣的問題。
我的問題是我有我的項目設置的方式。在我的項目中,我有一個包含3個項目的工作區,其中1個是主應用程序,1個是框架/庫,1是Pods項目。我正在訪問框架中的鑰匙串,我的單元測試目標是這個項目的一部分。
在經過與代客圖書館(您可以find here)背後的團隊進行廣泛討論並與Dan Federman一起工作之後,我們發現我的單元測試目標需要成爲主應用項目的一部分。一旦我將庫項目中的所有測試複製到主應用程序項目中,一切都運行並正常工作。
希望這會有所幫助!
- 1. MATCH ... LIKE不會返回任何信息
- 2. 從模擬器讀取短信
- 3. mssql_query不返回任何信息
- 4. Scrapy Spider不返回任何信息
- 5. DynamoDB中的嵌套查詢不會返回任何信息
- 6. Python多重處理不會返回任何信息
- 7. WMI查詢不會返回任何信息
- 8. xcode 9模擬器佈局故障
- 9. Xcode 9 - 沒有iOS 11模擬器
- 10. PowerShell腳本模塊不返回任何信息
- 11. Xcode:如何升級到Xcode 4.4後返回4.3模擬器?
- 12. 模擬方法不會返回對象
- 13. 存儲過程獲取列信息不會返回任何內容?
- 14. 從Android中的文本文件讀取數據不會返回任何內容?
- 15. 從Android模擬器中讀取圖像
- 16. Xcode 6未顯示任何模擬器
- 17. XCode IOS模擬器不會將我的任務放到背景
- 18. iOS 9模擬器不工作
- 19. 如何在Xcode 9中重置模擬器
- 20. EWS API搜索篩選器不會返回所有信息
- 21. 無法安裝Xcode 5模擬器,不會顯示在xcode中
- 22. 模擬器從Xcode消失
- 23. 無法從RSS中提取信息 - Xcode
- 24. 從模擬方法返回模擬
- 25. login.microsoftonline.com使用Xcode的9個模擬器使用AppAuth未9.1和Xcode的9
- 26. xCode4不會在模擬器
- 27. 如何在.NET中讀取SQL服務器模式信息?
- 28. easymock,模擬返回模擬
- 29. 從C:中讀取FIFO:select()不返回?
- 30. jquery datatable不返回信息
嘿Elyas,我正面臨類似的問題。我的單元測試在iOS 9.3和10.3.1模擬器中都在使用XCode 8.3.3。但是,如果我使用XCode 9運行它們,它們會在所有模擬器(iOS 9.3,10.3.1和11.0)上失敗。 希望知道您是否找到解決方案。 – Gix