2017-02-15 4 views
7

Я новичок в разработке macOS, но у меня есть опыт разработки iOS. Я разрабатываю приложение-установщик для пакета XYZ.pkg И я хочу установить этот пакет с моим собственным графическим интерфейсом, а не с установщиком macOS по умолчанию. Пакет доступен в комплекте приложения, и когда я пытаюсь установить его через команду, он сбой.Как установить пакет в приложениях macOS

guard let pathOfResource = Bundle.main.path(forResource: "SomePackageName", ofType: ".pkg") else { 
    return 
} 

self.loadingView.alphaValue = 1 
self.loadingView.layer?.isHidden = false 
self.activityIndicator.startAnimation(sender) 
let argumentString = "-pkg " + pathOfResource 
let argumentString1 = "-target /" 
let path = "/usr/sbin/installer " 
let arguments = [argumentString,argumentString1] 

let task = Process.launchedProcess(launchPath: path, arguments: arguments) 
task.waitUntilExit() 
self.activityIndicator.stopAnimation(sender) 
self.loadingView.alphaValue = 0 
+0

Я понимаю, что вы пытаетесь создать свой собственный установщик, но по-прежнему рекомендуете использовать рамки установщика. Checkout [Packages] (http://s.sudre.free.fr/Software/Packages/about.html), которое является простым и достойным в использовании. – Pejman

ответ

3

Ваша проблема в пространстве после пути.

let path = "/usr/sbin/installer" 

Процесс выдает исключение, если он не может найти двоичный файл в заданном пакете запуска.

+0

неверный параметр -pkg/$ ProjectPath/DerivedData/DFU_Update-cgrtxsaqsorvgbfxhkvqufvlbpja/Build/Products/Debug/DFU Update.app/Contents/Resources/PaletteInstaller.pkg Использование: installer [-help] [-dominfo] [-volinfo] [ -pkginfo] [-allowUntrusted] [-dumplog] [- verbose | -verboseR] [-vers] [-config] [-plist] [-file ] [-lang ] [-listiso] [-showChoicesXML] [-applyChoiceChangesXML ] [-showChoicesAfterApplyingChangesXML ] - pkg -target <[DomainKey | MountPoint]> –

+0

Это сообщение об ошибке в моем журнале, и вместо начала установки он дает этот журнал. Что мне теперь делать.? –

+0

вам нужно уйти от пути ... он содержит пробел. – catlan

3

На пути к пакету, который команда инсталлятора интерпретирует как конец имени пакета, есть пробел, а затем после этого находит что-то вроде бессмыслицы. Если вы вложите путь ресурса в кавычки, который должен работать:

let argumentString = "-pkg \"\(pathOfResource)\"" 

 Смежные вопросы

  • Нет связанных вопросов^_^