objective-c - Cocoa - 如何复制文件到/usr/share?

标签 objective-c cocoa privileges

我正在开发一个像cocoa应用程序一样的“安装”,它需要处理一些http请求,一些文件系统读取,将文件复制到/usr/share,设置cron(不是launchd)并向用户询问一些信息。 我放弃了 PackageMaker,因为我需要更大的灵 active 。

目前一切进展顺利,但在最后一个安装步骤中,我需要:

  • 删除我之前安装的应用程序文件夹(如果存在)。它始终是相同的路径:/usr/share/MY_APP
  • 再次创建应用程序文件夹:/usr/share/MY_APP
  • 将应用程序文件复制到/usr/share/MY_APP
  • 更新 cron 作业

使用管理权限保护/usr/share/MY_APP 非常重要,因此普通用户不应删除它。

实现这些步骤的最佳方法是什么?

顺便说一句,我使用的是 Xcode 3.2。

非常感谢! 卡洛斯。

最佳答案

在 preflight 脚本、postflight 脚本以及可能还有自定义 UI 的安装程序插件之间,我认为您没有理由不能在 PackageMaker 中完成所有这些操作。

注意:“安装程序插件”有点误导。用户不必必须在某个地方安装该插件作为单独的步骤;您将该插件包含在您的包中,安装程序将从那里使用它。

相关文件为a ReadMe file in a sample code project 。从 2.0 开始,Xcode 中还有一个 Installer 插件项目模板。

此外,an Installer plug-in won't get used if the user does a command-line installation 。当然,如果您编写自己的自定义安装程序,它们根本无法从命令行安装(包括远程安装到充满计算机的办公室或实验室)。

顺便问一下:为什么是/usr/share?你放在那里什么?可能有更好的方法来完成您真正想要完成的任务。

关于objective-c - Cocoa - 如何复制文件到/usr/share?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2529248/

相关文章:

objective-c - NSArrayController 上的 SelectionIndexes 只返回一个值

objective-c - 辅助功能 API : AXWebArea children elements (or HTML source)

objective-c - NSTableView 响应面板中的第一次单击

postgresql - 在不知道架构名称的情况下向组角色添加权限

mysql - 停止mySQL GRANT ALL,不只是删除

objective-c - 如何检查 NSData 是否有多媒体内容?

iphone - 等待值改变然后执行 block

iphone - 设置状态栏方向在 iPad 2 的 iOS 6 中不起作用

sql - 撤销对数据库的访问似乎不起作用

iphone - 如何将警报 View 设置为默认