Упаковка установщика Mac из комплекта приложений устанавливает папку "Contents" в /Applications вместо самого комплекта.
Когда я пытаюсь использовать упаковку с моим.app для создания установщика Mac и запускаю установщик, в папке /Applications создается папка с именем "Contents", а не "bundle app", как следует.
Я тестирую с помощью 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:
productbuild --component "./myapp.app" /Applications -s mycert myapp.pkg
В обоих случаях я запускаю установщик, все выглядит нормально, но в папке "Приложения" я вижу "Содержимое" (то есть содержимое пакета приложения).
Я пробовал с "./myapp.app/" также в атрибуте --component, и даже добавил "/Applications/myapp.app" в --install-location
2 ответа
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
Создайте пакет Sample.pkg, используя все содержимое целевого корня /tmp/Sample.dst.
pkgbuild --identifier com.sample.pkg.app --root /tmp/Sample.dst Sample.pkg
Как сказал Викрам, pkgbuild не должен связывать ".app", а вместо этого ищет только "Contents", присутствующий в этом каталоге.
Если ваша единственная цель - перейти в каталог, в который устанавливается пакет, вы можете указать альтернативное место установки.
pkgbuild --component "./myapp.app" --version 1 --install-location /Applications/myapp.app component.pkg