私はmyapp.appというアプリを持っています。署名されており、起動時に警告を表示しません。アプリのサイレントインストール
目的は、インストーラによってサイレントモードでインストールして起動することです。 このインストーラはコマンドラインで起動する必要があります。
私が想像している解決策は、myappを搭載したinstall.appを作成することです。
"open /Volumes/myapp/install.app"を実行してください。
installer.appは〜/ Applicationsにmyappをコピーして実行します。
これは現実的ですか?
「はい」の場合、ココアコマンドラインアプリケーションを作成する方法はありますか?
myapp.appを/アプリケーションにコピーできますか? (これまでのすべての私の試みは迅速に失敗した)。
[編集] 私は〜/アプリケーション/
let sourcePath = Bundle.main.path(forResource: "myapp", ofType: "app")
if (sourcePath == nil) {
print("myapp.app was not found");
return;
}
let target = FileManager.default.urls(for: .applicationDirectory, in: .userDomainMask).first
let target_path = target?.appendingPathComponent("myapp.app").path
do {
try FileManager.default.copyItem(atPath: sourcePath!, toPath: target_path!)
} catch let error {
print(error.localizedDescription)
}
さて、私は(可能な場合は迅速3で)それを起動するために探しています
にバンドルアプリをコピーすることができました[編集2 ]起動方法
let run_app = Process()
run_app.launchPath = "/usr/bin/open"
run_app.arguments = [target_path!]
run_app.launch()
もっと良い方法を教えてください。
"サイレント"が可能かどうかはわかりません。私はユーザーがそれを受け入れる必要があると思う。 –
アプリケーションを目的の場所にコピーして、そこからターミナルを使用して起動するのはなぜですか? –
@oa私が必要とするのは、アプリケーションを/アプリケーションにコピーして起動するプログラムを作成することです。このプログラムは、別のインストーラのような別のプログラムによって起動される可能性があります。 – arsenik