1

当您通过 Mac App Store 分发应用程序时,在保存文件方面是否有任何限制?

如果我从我的计算机编译并运行我的应用程序,它工作正常 - 它保存了配置。

但是,通过 Mac App Store 下载的版本并未保存配置。我什至没有看到配置文件。有谁知道发生了什么?

这是保存配置的代码:

-(void)saveConfig:(id)plist {

    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingString: CONFIG_FILE_NAME];

    NSData *xmlData;
    NSString *error;

    xmlData = [NSPropertyListSerialization dataFromPropertyList: plist
        format: NSPropertyListXMLFormat_v1_0
        errorDescription: &error];
    if(xmlData)
    {
        if (![xmlData writeToFile:path atomically:YES])
            NSLog(@"Failed to write the config file onto the hard drive");
    }
    else
    {
        NSLog(error);
    }
}
4

2 回答 2

2

如果您的目标是 Mac App Store,则无法将文件写入应用程序包目录。捆绑包应该是不可变的。

考虑保存你的配置,NSUserDefaults或者,如果你真的需要一个单独的文件,官方推荐的位置是 (~)/Library/Application Support。Matt Gallagher 写了一篇名为Find or Creating the application support directory的好帖子,他在其中提供了一个使用标准NSApplicationSupportDirectory后跟可执行文件名称的解决方案。

于 2011-05-19T04:00:57.860 回答
1

通常,您应该假设您的应用程序的资产是只读的。一般情况下都是如此,不仅适用于应用商店。

如果要将用户设置保存为属性列表,请使用NSUserDefaults而不是修改应用程序内的文件。这将“做正确的事”,即将首选项保存到~/Library/Preferences.

于 2011-05-19T04:00:31.947 回答