Aggiornamento applicazione mac

Buongiorno! qualche settimana f postai una richiesta di come leggere la data di creazione di un file, questo mi serviva per far fare al software un aggiornamento automatico dello stesso senza passare per link o quant’altro. Sul pc dopo vari tentativi ci sono riuscito in questo modo:
il software all’avvio controlla se la data della sua creazione e/o la data di altri elementi, tipo database o altro, antecedente da quella riportata da un file sul sito. Se antecedente chiama un altro programmino ed esce, questo programmino legge un file sul sito dove avr riportato le informazioni di quali elementi cancellare e/o ripristinare, tipo quello di Inno setup e tramite un collegamento in ftp (plugin MBS Curl), scarica gli elementi.
Il problema nasce sul Mac solo per l’applicazione, per gli altri elementi non ci sono problemi: non riesco a cancellare l’applicazione, cio l’intera cartella, il plugin all’apparenza, forse sono io che non so utilizzarlo bene, non mi lascia scaricare il pacchetto dell’applicazione. Ho provato a cancellare l’eseguibile all’interno della cartella MacOS e poi scaricare lo stesso, all’avvio esce il messaggio "impossibile avviare l’applicazione, allora ho provato a sostituirlo senza cancellarlo, al tentativo di avvio sembra che voglia partire, esce senza nessun messaggio, ho provato ha scaricarlo con Filzilla il risultato non cambia. Se salvo l’eseguibile nuovo sulla scrivania e poi sostituisco quello nella cartella MacOs dela vecchia applicazione con questo nuovo funziona il tutto, quali informazioni si perdono durante il trasferimento da mac/sito e viceversa. Sicuramente qualcuno di voi ha gi incontrato questo problema, come lo ha risolto?
Mario

Ciao @Mario Graziani ,

che versione di MacOs o OSX stai utilizzando?

MacOS ha una protezione per l’esecuzione di Applicazioni non scaricate dal MacAppStore.

In questo link trovi la soluzione per far aprire queste applicazioni non certificate:
https://www.macitynet.it/macos-sierra-ripristinare-la-voce-ovunque-nella-sezione-consenti-app-scaricate-dellapp-store/

Da quel che ho sentito (ma non ho verificato) con l’ultimo aggiornamento Catalina è possibile eseguire SOLO applicazioni scaricate da MacAppStore. Se è cosi … penso che tu non riuscirai ad eseguirlo la tua applicazione in questa modalità… ed io non aggiornerò MAI a Catalina :wink:

Grazie

No Domenico.
Hai sentito male. Quello che cambia che le applicazioni al di fuori dello store devono essere comunque firmate e notarizzate (ovvero dichiari alcuni servizi a cui fai accesso) in modo che non possano essere in qualche modo involontariamente modificate per essere vettori di azioni malevoli.

In ogni caso se sviluppi software per i tuoi clienti, poco importa se non aggiorni a Catalina; lo faranno loro

Quindi devo solo dichiarare la loro funzionalit… avevo letto una cosa errata allora :wink:

Grazie dell’informazione

Buongiorno, io ho un macOS High Sierra, non so su Catalina ma su tutti gli os precedenti per far partire una applicazione scaricata da internet basta selezionarla con il mouse dx e poi aprirla, si crea automaticamente un eccezione per l’applicazione e successivamente si apre senza problemi. Il problema mio non questo, sicuramente non mi sono spiegato bene, non riuscendo a scaricare la cartella completa dell’applicazione ho messo sul sito solo il file eseguibile, (Unix eseguibile) preso dalla sotto cartella MacOS, purtroppo una volta scaricato non viene visto pi come file eseguibile ma come un semplice documento Textedit, questo
se prima di scaricare elimino il file presente, se invece lo sovrascrivo resta un eseguibile ma non si avvia e non viene visualizzato nessun messaggio, succede anche se lo scarico con FileZilla. come rimediare? suggerimenti alternativi. E’ possibile scaricare l’intera cartella dell’applicazione tramite il plugin MBS CURL. non ho trovato esempi ed eventualmente si possa fare possibile cancellare una cartella con sottocartelle con un unico comando o bisogna eliminare file e cartelle uno alla volta.
Mario

L’eseguibile necessita dei permessi corretti e questi vengono spesso persi durante i trasferimenti.
Da Terminale puoi fare chmod +x FILE per ripristinare il flag di eseguibilit.

Da programma puoi usare la classe Permissions per ottenere la stessa cosa.

Grazie Massimo, ho fatto qualche prova, il file ritorna eseguibile ma non si avvia
ho utilizzato i seguente codice, che ho trovato nella classe Permissions, ho dato questi tre permessi, mi sembrano quelli necessari, ma non funziona anche se inserisco altri permessi non che c’ una sequenza logica da dare o sto sbagliando tutto, il che possibile visto che la prima volta che utilizzo questa classe

dim f as FolderItem
dim p as new Permissions (0)
//p.StickyBit=true
//p.UidBit=true
p.GidBit=true
p.OwnerRead=true
p.OwnerExecute=True
//P.GroupExecute=True
//OthersRead=true
//P.GroupExecute=True
p.OthersExecute=True
f=GetFolderItem(percorso+“Myapplicazione.app:Contents:MacOS:Myapplicazione”)
if f<>nil then
f.Permissions=p
End If

Mario

Anzitutto assicurati che il codice sopra sia stato eseguito.
Ti consiglio di aprire il Terminale e verificare i permessi (ls -la nella directory giusta)

Ho eseguito diverse volte il codice con i vari permessi fino ad attivarli tutti, (12 per l’esattezza) ma l’applicazione non si avvia.
Ogni prova l’ho testata con il seguente codice che mi dava sempre un risultato diverso ogni volta che attivavo uno più permessi
f=GetFolderItem(percorso+“Myapplicazione.app:Contents:MacOS:Myapplicazione”)
if f<>nil then
msgbox str(f.Permissions)
end if
il file all’inizio risultava un documento, dopo l’attivazione di p.OwnerExecute=True risultava eseguibile unix.
Ho provato con il Terminale ma non sono riuscito a utilizzarlo nel modo giusto, mio dava sempre errore, non avevo mai utilizzato il terminale. Ho inserito nel sito il file zippato, scaricato e decompresso non perde i permessi e funziona, è possibile decomprimere il file zippato da codice? eventualmente esiste un plugin per farlo?
Mario

Buongiorno, RISOLTO!!! per far funzionare il tutto prima di effettuare l’upload del file eseguibile, della sotto cartella MacOS, l’ho
rinominato in myapplicazione.exe , funziona anche con .doc, ho provato solo queste estensioni, dopo l’upload l’ho rinominato togliendo l’estensione, una scaricato sul software ho eseguito il seguente codice utilizzando solo tre permessi

dim f as FolderItem
dim p as new Permissions (0)
p.GidBit=true
p.OwnerRead=true
p.OwnerExecute=True
f=GetFolderItem(percorso+“Myapplicazione.app:Contents:MacOS:Myapplicazione”)
if f<>nil then
f.Permissions=p
End If
Non ho capito perch funziona ma funziona. forse perch ho provato con estensioni usate su Windows, non lo so
Grazie Massimo, i tuoi consigli anche se non completi sono stati preziosi
Mario

Buongiorno, una precisazione, se l’upload del file eseguibile dell’applicazione viene fatto da un pc non c’ bisogno di rinominarlo dandogli un estensione, una volta fatto il download basta dargli i tre permessi. Per l’upload ho utilizzato FileZilla sia sul Pc che sul Mac
Mario