Aggiornamento applicazione mac

  1. last week

    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

  2. Domenico C

    Nov 4 Milano

    Ciao @Mario G ,

    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 ;)

    Grazie

  3. Antonio R

    Nov 4 Pre-Release Testers, Xojo Pro, Third Party Store Europe (Italy)

    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…

  4. Domenico C

    Nov 4 Milano

    Quindi devo solo dichiarare la loro funzionalità... avevo letto una cosa errata allora ;)

    Grazie dell'informazione

  5. 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

  6. Massimo V

    Nov 4 Pre-Release Testers, Xojo Pro Europe (Germany, Würzburg)

    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.

  7. 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

  8. Massimo V

    Nov 5 Pre-Release Testers, Xojo Pro Europe (Germany, Würzburg)

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

  9. 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

  10. 7 days ago

    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

  11. 5 days ago

    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

or Sign Up to reply!