Requisiti per usare "open -b" bundle.id "" per OS X


0

Ho uno script di post-installazione che si apre e gestisce la mia applicazione in silenzio. L'app è stata realizzata utilizzando Automator e fondamentalmente esegue un oggetto Applescript che a sua volta esegue uno script Bash incorporato nella cartella Risorse app.

Lo script postinstall:

#!/bin/bash

open -b "com.company.ApplicationName"

funziona su alcune macchine e non su altre. Sto ricevendo un errore

LSGetApplicationForInfo() failed with error -10814 while trying to determine the application with bundle identifier com.company.ApplicationName

Non sono stato in grado di determinare il perché. Presumo che mi manchi una sorta di software prerequisito sulle macchine che non funzionano.

Chiunque sia a conoscenza dei requisiti da utilizzare open -b "bundleid"? Xcode, Xcode con Command Line Tools o qualcosa del genere? Gradirei qualsiasi intuizione.


1
Potresti anche aver provato a usare qualcosa di simile osascript -e 'tell app id "com.company.ApplicationName"' -e reopen -e activate -e end.
Lri

Risposte:


1

La mia ipotesi è che stia lavorando su sistemi in cui l'app è presente abbastanza a lungo da consentire la registrazione dell'app nel sistema, ma non funziona su sistemi in cui non è presente da molto tempo.

C'è una possibile soluzione qui:

Il comando (tutta una riga)

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

The Caveat

Dopo aver eseguito questo comando, OS X potrebbe richiederti prima di consentire l'apertura di alcune applicazioni per la prima volta. NON suggerirei di eseguirlo sul Mac di qualcun altro o è probabile che si arrabbino con te.

Invece, suggerirei di usare open -a /path/to/your/app invece di open -b {bundle-id}


Grazie per i suggerimenti. Il problema è che sto distribuendo questo con Munki e utilizzando uno script di post-installazione per aprirlo automaticamente. È possibile che venga installato in percorsi diversi, quindi l'utilizzo di ID bundle è la mia unica vera opzione. Inoltre, per quanto riguarda l'uccisione di lsregister, avrei bisogno di colpire ogni macchina e l'ARD non è così utile nel nostro ambiente (uno dei motivi per cui stiamo usando Munki).
TryTryAgain

Ho inviato un aggiornamento all'app, come soluzione, dandogli il tempo di registrare l'ID del bundle. Senza alcun software aggiuntivo installato, sembra che non abbiano problemi ad aprire l'app open -b "app.bundle.id" quindi sì, deve essere stato un problema con il tempo e l'ID del bundle non è stato registrato. Grazie ancora per il tuo contributo e aiuto.
TryTryAgain
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.