2013-10-28 47 views
1

我在mac osx上制作了一个应用程序,需要在config.cfg文件中进行更改。我使用py2app将python脚本转换为myapp.app。我通过setup.py将我的config.cfg文件包含在myapp.app的Resources位置中。然后,我使用Packages通过制作myapp.pkg文件在/ Applications位置安装myapp.app。但是,当我通过Show Package Contents在Application location中打开myapp并尝试编辑config.cfg文件时,会出现一个对话框,其中显示You don't own the file config.cfg and don't have permission to write it。我使用osx 10.8.5 Mountain Lion和Xcode 4.6.1。 MY config.cfg文件如何在通过mac osx上的软件包安装的应用程序中编辑文件

[FOLDER] 
extensions = cfv 
############################# 

[KMS] 
serverIP1 = 127.56.98.104 
serverPort1 = 8080 
serverIP2 = 172.46.84.145 
serverPort2 = 8080 
SSL=TRUE 

回答

1

不要在应用程序包中存储可修改的数据;一切都应该是静态的,其他线路的权限将是一团糟,代码签名会中断等等。一般来说,用户可修改的文件属于用户的主文件夹。对于一个配置文件,最好的办法可能是将其视为一个首选项文件并将其存储在〜/ Library/Preferences中。请注意,首选项文件的命名惯例是在应用程序名称前面以相反顺序使用您的域名作为前缀(例如com.apple.Finder);如果您不拥有域名,我建议使用“local”作为前缀。此外,该文件夹中的大多数文件都是.plist格式(例如com.apple.Finder.plist);你的文件大概不是,所以使用一些更合适的扩展名(.cfg会很好)。

+0

我很感谢你的建议先生。如何将config.cfg文件提供给不同的用户。最初,代码必须从config.cfg文件读取大量数据以启动应用程序的运行。 – imp

+0

我不知道我明白你想要完成什么。在OS X中,每个用户通常都有他们自己的个人应用程序设置,他们配置和维护。我想你可以给你的.cfg文件的副本,并将它放在他们的〜/ Library/Preferences文件夹中...... –

+0

先生,请参阅我的config.cfg文件,关于应用程序的运行,所需的serverIP和端口。我通过这个config.cfg文件。用户需要根据其服务器更改此serverIP。另外我使用configparser来读取配置文件。所以,你是说,我需要制作一个将包含的dmg文件,将安装在应用程序位置的myapp.pkg以及用户需要将其放置在〜/ Library/Preferences文件夹中的config.cfg文件。有没有办法直接将config.cfg文件放置在〜/ Library/Preferences位置,同时安装应用程序,而不会造成用户干扰。 – imp

相关问题