2010-06-09 8 views
9

Sto scrivendo una semplice estensione Safari e sto cercando di capire come far funzionare il meccanismo di aggiornamento. la documentazione di Apple qui è deliziosamente vaga:Aggiornamento di un'estensione Safari?

https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/UpdatingExtensions/UpdatingExtensions.html

Ed ecco il mio manifesto, sulla base di tale documentazione:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Extension Updates</key> 
    <array> 
     <dict> 
      <key>CFBundleIdentifier</key> 
      <string>net.rickyromero.safari.shutup</string> 
      <key>Team Identifier</key> 
      <string>TMM5P68287</string> 
      <key>CFBundleVersion</key> 
      <string>1</string> 
      <key>CFBundleShortVersionString</key> 
      <string>1.0</string> 
      <key>URL</key> 
      <string>http://rickyromero.net/misc/SafariExtensions/ShutUp.safariextz</string> 
     </dict> 
    </array> 
</dict> 
</plist> 

non so dove trovare "YourCertifcateID", per esempio. E quando incremento i valori per CFBundleVersion e CFBundleShortVersionString, non innesca un aggiornamento. So che Safari sta colpendo il mio manifest, perché sto guardando il traffico HTTP.

Completamente scartato. Qualche idea, ragazzi?

risposta

6

Team Identifier dovrebbe essere Developer Identifier

L'Identifier Developer è preso dalla stringa alla parte superiore della finestra Extension Builder, Safari Developer: (DEVELOPER_IDENTIFIER) EMAIL

+0

Ho appena provato a cambiarlo, ma sfortunatamente non lo ha fatto ... Non richiede ancora l'aggiornamento quando incremento il numero di versione. –

+0

Ecco il mio manifest, che sembra funzionare http://matsadler.github.com/deanimator/aggiornamenti.plist L'Identifier Developer è preso dalla stringa alla parte superiore della finestra Extension Builder, 'Safari Developer: (DEVELOPER_IDENTIFIER) EMAIL' L'altra cosa che ho provato è stata l'apertura del file con Property List Editor.app per verificare è un .plist valido, anche se non sembra essere un problema per te. – matsadler

+0

Va bene, grazie per il vostro aiuto. L'ho esaminato un po 'più da vicino e i miei identificatori non corrispondevano ... Dovrebbe funzionare bene ora. :-) –

1

problema simile. Safari vede l'aggiornamento (ho impostato gli aggiornamenti sul manuale) ma facendo clic sul pulsante di installazione quando viene rilevato un aggiornamento non fa nulla. Se poi controllo "Installa aggiornamenti automaticamente", il processo di aggiornamento inizia e termina ma la nuova versione non è installata. Posso vedere il traffico sul server web, quindi so che è stata fatta una richiesta.

MODIFICA: Risolto! Le autorizzazioni erano errate nella directory web in cui è stata archiviata l'estensione, risolto e installato manualmente e automaticamente. Ogni volta che ricostruisco l'estensione e salva nella mia cartella di servizio web devo impostare le autorizzazioni.

secondo Edit: Se si vuole guardare a un interno esistente, scaricarlo o scarica delle estensioni di Safari cartella quindi modificare il .safariextz per estensione XAR vengono quindi aprire/estrarre con pacifista per visualizzare il codice e se si vuole aggiungilo all'app Extension Builder.

1

Ho avuto lo stesso problema, il file PLIST era come quello di cui sopra e ecco come lo risolto il mio problema:

  • avuto un Developer Identifier non corretta (ha avuto un 5 invece di un Z). Duh!
  • permessi, che sono riposare ogni volta che si aggiorna il file:

    chmod 0444 EXTENSIONNAME.safariextz

0

Appena avuto lo stesso problema, e le autorizzazioni sono stati il ​​problema per me, troppo. Il file .safariextz è stato scaricato correttamente tramite un collegamento diretto sulla mia home page, ma ho dovuto impostare le sue autorizzazioni su + x sul server prima che Safari lo scarichiasse come aggiornamento automatico.