2012-01-04 4 views
23

Per coloro che distribuiscono app per Mac al di fuori del Mac App Store, in che modo si prevede di supportare l'aggiornamento e il sandboxing? Indovino che le risposte della maggior parte delle persone per il momento sono che non lo sono, ma spero che alla fine le app non MAS possano essere inserite in una sandbox proprio come le app MAS.È possibile aggiornare un'applicazione Mac sandbox con Sparkle o qualcosa di simile?

Per utilizzare Sparkle, la tua app richiede l'accesso alla rete, che può essere concesso, oltre alla possibilità di sovrascrivere se stesso nelle applicazioni. Attualmente puoi farlo con il diritto com.apple.security.temporary-exception.files.absolute-path.read-write, ma questa non è una buona soluzione. Probabilmente andrà via, e anche se non lo fosse, c'è poco da fare nella sandboxing di un'app se si ha intenzione di dare accesso completo al file system in lettura-scrittura e accesso alla rete.

Qualcuno ha già intrapreso questa strada e trovato una buona soluzione? Lo chiedo perché cerco di mantenere la mia build MAS e la mia build non MAS il più possibile identiche, e al momento sto cercando di avere la mia build MAS sandbox e la mia build non MAS no.

+1

Uno dei tanti sviluppatori di mal di testa relativi alla sandbox sta avendo! – sbooth

risposta

4

In una conversazione avviata da @chockenberry on twitter, @andy_matuschak responded in modo favorevole alla creazione di un servizio XPC per Sparkle.

Ho un pull request open on GitHub che crea effettivamente il servizio XPC. Spero che questo venga incorporato presto in Sparkle.

+0

La mia risposta precedente includeva un consiglio per creare un'eccezione temporanea, ma che non funzionava con il sandboxing. – wbyoung

+0

Com'è lo stato di questo ora? Siete più vicini nel rendere Sparkle pienamente compatibile con la sandbox? Sei riuscito a risolvere tutti i problemi di sicurezza di Andy (in quella discussione su GitHub)? Grazie. –

+2

Ancora non tirato in Sparkle. Stiamo spedendo il Mac App Store solo ora, quindi non ci sto lavorando. Sentiti libero di continuare da quella richiesta di pull, però. – wbyoung

1

In realtà abbiamo due versioni della nostra app: una per il nostro sito Web e una per l'app store.

Si consiglia di utilizzare l'approccio di Sam Deane che è possibile trovare in his GitHub repository. Funziona bene per noi.

+0

Mi è stato dato più credito di quello che meritavo per quella versione - per lo più ho semplicemente combinato un lavoro fatto da altri. –

+0

Il ramo che si desidera è https://github.com/samdeane/Sparkle/tree/sandboxing. –

+0

fwiw, il merito dovrebbe andare a Whitney Young e Erik Aderstedt. –

0

Not yet.

A partire da 1.15 Sparkle non supporta il sandboxing e the patch in cui è presente una vulnerabilità che consente il bypass completo della sicurezza sandbox.