如何从命令行获取NSUserDefaults

时间:2016-01-06 15:36:54

标签: ios shell nsuserdefaults

如何从命令行中提取NSUserDefaults共享首选项?这将是一个开发构建。我想使用某种类型的shell脚本并调用它来检索此信息。这可能吗?如果是这样,怎么样?

更新: 我还需要从unrooted设备而不是模拟器中获取它。因为我想获取APNS令牌并将其存储在某个地方。我目前正在将NSNS令牌存储在NSUserDefaults中。要清楚,我有一个iOS应用程序,我想在Mac上使用命令行脚本获取我存储在NSUserDefaults中的APNS令牌。我需要从设备上获取它的原因是我无法从模拟器进行推送通知,所以除非真实设备注册,否则我不会获得APNS令牌。

更新:我看到了这篇SO文章Browse the files created on a device by the IOS application I'm developing, on workstation?,但我希望自动化这个。无论如何使用xcode命令从shell下拉容器?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

首先,您不需要解决此问题。只需编写一些代码即可将数据打印到控制台。

如果您确实需要这样做,这里是标准用户默认值的解决方案(组用户默认值存储在另一个路径中,我现在无法处理)。

  1. 确保您的应用未通过App Store安装。
  2. 安装iExplorer(在Windows上的Mac OS或iFunbox上)并插入您的设备。
  3. 打开iExplorer(或iFunbox)并浏览此应用程序。将整个沙盒目录导出到PC。
  4. 用户默认值存储在Library/Preferences/<app-bundle>.plist中。用Xcode打开它。