当前位置: 首页 > 知识库问答 >
问题:

Xcode 6模拟器为每次运行重命名ApplicationID(而不是DeviceID

端木存
2023-03-14

我读过一堆关于documents目录的路径随着模拟器的每次运行而改变的文章,但是讨论的是DeviceID,我同意它没有改变。正在改变的是ApplicationID,至少使用我要查找的方法,我在下一次运行时找不到它,所以我的sql db不在那里。

下面是我看到的例子:

首次运行:文档目录:/Users/Annewest/Library/Developer/CoreSimulator/Devices/9DE1C194-BFB1-47CA-9CA1-77FA89F43960/Data/Containers/Data/Application/4EFF7925-BB9E-4D9F-BD8C-B5BF44361189/文档

然后我在Xcode中停止应用程序并再次运行。现在我明白了

第二次运行:Documents目录:/Users/Annewest/Library/Developer/CoreSimulator/Devices/9DE1C194-BFB1-47CA-9CA1-77FA89F43960/Data/Containers/Data/Application/8409664B-8EF4-4318-A6D7-EB07E965F0F6/Documents

注意,第一个随机字符串DEviceID是相同的,但ApplicationID发生了变化。

下面是我用来查找目录和文件路径并创建持久存储协调器的代码:

- (NSString *) documentsDirectory
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths lastObject];
    NSLog(@"Documents directory%@", documentsDirectory);
    return documentsDirectory;
}

- (NSString *) dataStorePath
{
    return [[self documentsDirectory] stringByAppendingPathComponent:@"DataStore.sqlite"];
}

- (NSPersistentStoreCoordinator *) persistentStoreCoordinator
{
    if (!_persistentStoreCoordinator) {
        NSURL *storeURL = [NSURL fileURLWithPath:[self dataStorePath]];
        _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];

        NSError *error;
        if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
            NSLog(@"Error adding persistent store %@ %@", error, [error userInfo]);
            abort();
        }
    }
    return _persistentStoreCoordinator;
}

有比我知识更多的人能帮我解决这个问题吗?

THX

共有1个答案

莘康裕
2023-03-14

在四处打探了一个小时后,以下是我发现的:

使用不同的ApplicationID也可以;系统似乎只是重命名目录,但内容保持不变。我被天琴座愚弄了,它找不到原始目录。

 类似资料:
  • 我运行的是Xcode6beta5,但这从第一个Beta就开始了。每次运行后,我的应用程序在模拟器中的目录都会被重新命名。我花了一段时间才弄明白。我用这个来获取医生的目录参考。 例如,在第一次运行时: /用户/Joey/库/开发人员/CoreSimulator/设备/5B9930EE-A9B4-4B36-BABB-AA864ACAF2DE/数据/容器/数据/应用程序/7E9EB62D-115A-40

  • 我正在修改服务器上为我设置的备份脚本。该脚本目前每天早上运行以备份目录下的所有域,如果可能的话,我希望每周只运行四次(周日、周二、周四、周六),而不是每天运行。我对脚本语言/命令比较陌生,想知道是否有人能帮我?以下是当前脚本: 谢谢你,杰森

  • 问题内容: 我正在使用PowerMock编写单元测试,模拟了某些util类的行为。为测试类定义一次行为(通过@BeforeClass批注)会导致: 第一次测试调用以返回模拟值 第二次测试返回真实方法的返回值 样例代码: 任何想法为什么第二次测试失败了? 问题答案: 该方法将调用。此方法注册一个Runnable,它将 在每次测试后 执行: 这个可运行的清理 Mockito 的 内部状态 : 因此,您

  • 我正在运行最新版本的Mac OS,我想通过命令行工具运行android模拟器。我在Mac终端上运行了以下命令,得到了以下错误。 我还使用以下可用选项运行命令,这些选项也可以在官方文档developer.android.com上找到 我需要做什么,这样我就不需要每次都打开Android Studio而只打开模拟器。

  • 在我读到的关于它的帖子上,似乎没有人对它有任何问题,并且都报告了一个更快的模拟器。 它显示的错误是: 为什么会发生,有没有办法修复它?还有谁会犯这些错误吗?反之亦然? 编辑: 这是我在BIOS中看到的,所以它应该是可用的...:

  • 我试图在Android Studio上运行一个模拟器,但它无法启动。 我有Android Studio(版本23Marshmallow),配置了 当我在仿真(nexus 5x api 23 android 6.0)中运行我的应用程序时,我得到以下错误: 等待设备时出错:AVD Nexus_5X_API_23的模拟器进程被终止。 任何人都可以帮我吗?