2016-01-06 65 views
2

如何從命令行獲取NSUserDefaults共享首選項?這將用於開發構建。我想使用某種類型的shell腳本並調用它來檢索這個信息。這可能嗎?如果是這樣,怎麼樣?如何從命令行獲取NSUserDefaults

更新: 不幸的是,我還需要從無根設備而不是模擬器中獲取它。因爲我想抓住APNS令牌並將它存儲在某個地方。我現在將APNS令牌存儲在NSUserDefaults中。要清楚,我有一個iOS應用程序,我想要使用Mac上的命令行腳本來獲取我存儲在NSUserDefaults中的APNS令牌。我從設備中需要它的原因是我不能從模擬器推送通知,所以我不會得到APNS令牌,除非真正的設備註冊。

更新:我看到這個SO文章Browse the files created on a device by the IOS application I'm developing, on workstation?但我想自動化這一點。無論如何,使用xcode命令從外殼拉下容器?

+0

除非您的設備遭到破解,否則我懷疑這是可能的。 – mah

+0

如果您將令牌記錄到控制檯,可以使用libimobiledevice檢索它:http://krypted.com/mac-os-x/use-libimobiledevice-to-view-ios-logs/ – chedabob

回答

1

如果你使用模擬器,你可以發現他們在

~/Library/Developer/CoreSimulator/Devices/<dev-uuid>/data/Containers/Data/Application/<app-uuid>/Library/Preferences/<app-bundle>.plist

dev-uuid是模擬器的UUID(你可以找到他們與xcrun simctl list列表)

app-uuid是UUID用於此應用程序的安裝

app-bundle是您的應用程序包(即com.test.testApp)

0

首先,你不需要解決這個問題。只需編寫一些代碼將數據打印到控制檯即可。

如果您確實需要這樣做,以下是標準用戶默認設置的解決方案(組用戶默認設置存儲在另一個路徑中,我現在無法處理)。

  1. 確保您的應用程序未通過App Store安裝。
  2. 安裝iExplorer(在Mac OS或Windows上的iFunbox上)並插入您的設備。
  3. 打開iExplorer(或iFunbox)和瀏覽器到這個應用程序。將整個沙箱目錄導出到PC。
  4. 用戶默認值存儲在Library/Preferences/<app-bundle>.plist中。用Xcode打開它。
+0

我需要它自動執行。我的自動化測試發生了什麼,我需要獲得APNS令牌,以便我們可以使用它進行自動化測試。您是否建議我們將它打印到控制檯並從那裏讀取? iFunbox不會自動化,而是手動。 – j2emanue

+0

@ john-wong如果你安裝了Xcode,你不需要iFunbox。您可以從「設備」窗口獲取應用程序沙箱。 – chedabob