Упаковка установщика 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
Другие вопросы по тегам