从应用程序bundle打包 Mac 安装程序会安装 /Applications 中的文件夹"Contents"而不是bundle本身



当我尝试将打包与.app一起使用来创建 Mac 安装程序并运行安装程序时,它会在我的/Applications 文件夹中创建一个名为"内容"的文件夹,而不是"捆绑应用程序"。

我已经用 pkgbuild + productbuild 进行了测试:

pkgbuild --component "./myapp.app" --version 1 --install-location /Applications component.pkg
productbuild  --package-path "component.pkg" --distribution "./Distribution.xml" --package-path "./Temp" --resources "./Resources" --sign mycert "myapp.pkg"

仅通过产品构建:

productbuild --component "./myapp.app" /Applications -s mycert myapp.pkg
在这两种情况下,我都

运行安装程序,一切似乎都很好,但是在"应用程序"文件夹中,我看到"内容"(即应用程序包的内容)

我也尝试在 --component 属性中使用"./myapp.app/",甚至在 --install-location 中添加"/Applications/myapp.app"

pkgbuild --component "./myapp.app" --version 1 --install-location /Applications component.pkg

使用 --component 标志,您应该提供捆绑包所在的目录路径。不应提供应用捆绑包名称之前的路径。如果要捆绑 ./TestDir/myapp.app 中存在的内容,则应提供路径作为./TestDir,并且目录内的所有内容都将捆绑在一起。

pkgbuild --component "./TestDir" --version 1 --install-location /Applications component.pkg

使用目标根目录/tmp/Sample.dst 的全部内容构建包 Sample.pkg。

pkgbuild --identifier com.sample.pkg.app --root /tmp/Sample.dst Sample.pkg

正如Vikram所说,pkgbuild不应该捆绑".app",而是只查找该目录中存在的"内容"。

如果您的唯一目标是更改为安装捆绑包的目录,则可以指定备用安装位置。

pkgbuild --component "./myapp.app" --version 1 --install-location /Applications/myapp.app component.pkg

相关内容

  • 没有找到相关文章

最新更新