安装包PackageKit时重定位应用程序包.如何禁用此行为?

And*_*.Kh 7 xcode command-line software-distribution

我的程序错误地作为压缩包发布,但现在我计划添加必须在安装后启动的守护程序.所以我决定在安装时创建包,它将运行Post-Install脚本.首先,我创建一个这样的简单包:

 productbuil --component MyAppName.app /Applications --sign "common name of my certificate" MyAppName.pkg
Run Code Online (Sandbox Code Playgroud)

并尝试安装它.

安装成功但在我在/ Application目录中找不到应用程序包之后.我在/var/log/install.log中找到了这个poltergaste这行:

installd [1954]:PackageKit:Applications/MyAppName.app重定位到Users/myUserName/PAServer/scratch-dir/UserName1.Kh-profileName/MyAppName.app

之后我发现这个答案让OS X安装程序包像Pro-Xcode Developer ID一样准备pkg 并尝试执行其中的命令行.

pkgbuild --analyze --root ./MyProgram.app MyProgram.app.plist
pkgbuild:从./MyProgram.app pkgbuild的内容中推断包组件:将新的组件属性列表写入MyProgram.app1.plist

在我计划编辑plist文件但我首先尝试使用默认参数的简单构建包.

pkgbuild --root ./MyProgram.app --component-plist ./MyProgram.app.plist MyProgram.pkg pkgbuild:从./MyProgram.app.plist中读取组件pkgbuild:error:没有指定包标识符,也没有指定一个组件从中派生出来.

怎么了?

-----------------------------

我也试图安装旧版本的XCode aux工具来尝试使用PackageMaker,但是即使我安装了XCode 4.5,也找不到文档(我需要从命令行使用PackageMaker).我无法从GUI工具手动构建软件包,因为最终用户捆绑包放置了独特的资源库,而手动构建太昂贵了.所以我寻找自动建筑方法.

tre*_*esf 8

你错过了这个--identifier参数.尝试:

pkgbuild --identifier MyIdentifier --root ./MyProgram.app \
--component-plist ./MyProgram.app.plist MyProgram.pkg 
Run Code Online (Sandbox Code Playgroud)

--identifier MyIdentifier可以在系统中注册的唯一名称在哪里.

PS您可以选择遵循suffix.domain.project命名约定:

pkgbuild --identifier com.mydomain.MyIdentifier --root ./MyProgram.app \
--component-plist ./MyProgram.app.plist MyProgram.pkg 
Run Code Online (Sandbox Code Playgroud)

--identifier com.mydomain.MyIdentifier可以在系统中注册的唯一名称在哪里.