调试iOS应用时如何查看App Group Shared Container目录的内容?

问题描述 投票:0回答:4

相当不言自明。

我们可以通过“窗口”>“设备”查看应用程序的文档、库、tmp 目录(一直如此)。

但是当应用程序扩展在 iOS8 中出现时,应用程序组共享容器也随之而来。如何查看其内容?

编辑:澄清一下,我不是问如何在代码中与此目录交互。我问的是如何在 Finder 上下文中与此目录交互。

ios objective-c xcode swift ios8
4个回答
4
投票

获取应用程序组路径

#define APP_GROUP_PATH [[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"yourGrpupId"] path]

以下代码查看共享容器数据

NSLog(@"Shared container data:%@",[self listFileAtPath:APP_GROUP_PATH]);

-(NSArray *)listFileAtPath:(NSString *)path
{
    int count;

    NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
    for (count = 0; count < (int)[directoryContent count]; count++)
    {
        NSLog(@"File %d: %@", (count + 1), [directoryContent objectAtIndex:count]);
    }
    return directoryContent;
}

0
投票

您可以在代码中打印目录的路径,然后使用

Shift
+
CMD
+
G
在查找器中打开路径。

print(urlToAFileInTheDirectory.absoluteString)

其中

urlToAFileInTheDirectory
URL
,其中包含共享文档目录中文件的路径。

这适用于 Xcode 13 中的模拟器。我不确定它是否适用于实际设备。


0
投票

appGroupContainer 在所有登录同一 Apple ID 的设备之间共享,因此您只需使用 iOS 模拟器即可访问实际设备使用的容器。内容可在 Finder 中访问。在我的 iOS 应用程序中,我有以下

FileManager
扩展:

extension FileManager {
  var groupIdentifier: String { "group.com.braysoftware.MySharedContainer" }
  /// Location of documents on device that can be backed-up to iCloud if enabled.
  var localDocumentsDirectory: URL {
    self.urls(for: .documentDirectory, in: .userDomainMask).last!
  }

  /// Location of shared documents between app and extension
  var sharedDocumentsDirectory: URL {
    guard let url = self.containerURL(forSecurityApplicationGroupIdentifier: groupIdentifier) else {
      return localDocumentsDirectory
    }

    if !self.fileExists(atPath: url.path) {
      try? self.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil)
    }
    return url
  }
}

在应用程序启动时,我打印出

FileManager.default.sharedDocumentsDirectory
的值。如果在模拟器中运行,该路径将是您 macOS 设备上的路径,您可以在 Finder 中轻松访问它。


-1
投票

您无法以查找器的方式与其精确交互。尽管您可以查看容器并下载它。

  1. 转到设备并选择设备
  2. 您可以使用具有容器设置的应用程序下的三点按钮下载容器。

您还可以显示或下载容器。

© www.soinside.com 2019 - 2024. All rights reserved.