2012-07-03 11 views
42

Ho creato un'applicazione C#/XAML in stile Metro e ora sto cercando di aggiungerlo al controllo di versione (Git e, successivamente, GitHub). Ciò significa capire quali file appartengono al controllo di versione e quali no.Devo aggiungere il file TemporaryKey.pfx della mia app Metro al controllo della versione?

Quando ho creato il mio progetto Metro, Visual Studio ha aggiunto un file ad esso chiamato Nome progetto _TemporaryKey.pfx. Da quello che ho letto, i file .pfx apparentemente hanno qualcosa a che fare con la firma del codice oi certificati o qualcosa del genere. Non ho ancora trovato nulla che spieghi esattamente cosa significano nel contesto delle app in stile Metro, o come dovresti gestirle.

Sto pianificando di inviare il mio codice a GitHub (in un repository pubblico). A lungo termine, ho intenzione di inserire la mia app nello store di Windows. Se per costruire il progetto è necessario il file .pfx, allora è meglio che lo controlli. Se contiene un'identità digitale che mi identifica come l'autore dell'app e pubblicarlo lascerebbe che chiunque su Internet spinga nuove versioni della mia app al negozio di Windows senza la mia conoscenza, allora è meglio che non verificarlo nel.

quindi la mia domanda è, c'è qualcosa segreto nel TemporaryKey.pfx il file? Dovrei controllarlo nel mio repository pubblico, o dovrei lasciarlo fuori dal controllo del codice sorgente? (E cosa si romperebbe se non l'avessi messo nel controllo del codice sorgente, ma poi volevi controllare il mio codice su un altro computer?)

+1

Questa è una domanda eccellente. Anche se non ho una buona risposta - è abbastanza facile generare una nuova chiave, quindi il codice è ancora utilizzabile senza di essa (richiede solo un passaggio in più) - è necessario andare alla scheda Package.appxmanifest/Packaging/[ Scegli certificato ...]/[Configura certificato ...]/[Crea certificato di prova ...] - che ti consente di creare un nuovo file pfx, utile anche se quello vecchio non è valido - ad es. quando aggiorni il tuo progetto da una versione precedente di Win8 e gli strumenti di sviluppo. –

+1

Ok, buono a sapersi. Sai se qualcosa si romperà se generi un nuovo certificato di prova? Mi piace, non sarai più in grado di inviare nuove versioni della tua app all'app store? Oppure non accetteranno nulla con un certificato di prova in primo luogo? Devi acquistare un certificato da qualche parte prima di poterlo presentare all'app store? Deve esserci documentazione per questo da qualche parte, non sono stato in grado di trovarlo. –

+0

No, mi dispiace. Non ho visto troppi dettagli per questo e non ho ancora il token del negozio o non ho pubblicato un'app allo stesso negozio. –

risposta

33

Il file .pfx è utilizzato nel certificato di codice temporaneo per firmare la tua app per la distribuzione su la tua macchina in modo da poter eseguire il debug. Puoi rimuoverlo, ma dovrai generare una nuova chiave temporanea (tramite la scheda Packaging nella finestra di dialogo package.appxmanifest). Lo lascio sempre nel codice che pubblico poiché è più facile sulla persona che usa il codice (cioè, nessun messaggio di errore). Se si guardano alcuni altri progetti di origine WinRT (MVVMLight, ad esempio), includono anche .pfx per comodità.

Se ho capito le cose correttamente, il file .pfx viene sostituito durante il processo di invio dello Store, quindi non devi preoccuparti del fatto che temp .pfx sia usato da qualcun altro.

+0

Sì, quando si crea un pacchetto di app per la pubblicazione a scopo di memorizzazione, verrà generato un nuovo file chiave $ nome app $ _StoreKey.pfx. Tengo sempre $ nomname $ _TemporaryKey.pfx e $ appname $ _StoreKey.pfx al controllo della versione. –

+6

Quindi, una domanda seguente potrebbe essere ... una volta pubblicata l'app, si ottiene un '* _StoreKey.pfx' È pericoloso controllare l'interno? – kiewic

+0

Non vorrei controllare la chiave del negozio, specialmente non in un repository ospitato che potrebbe essere successivamente condiviso con altri membri del team. In VSTS è possibile utilizzare l'opzione "File protetti" per questo, se si desidera utilizzare l'integrazione continua in cui è necessario nuovamente il PFX. – Patric

0

.PFX è la chiave (come una chiave per la porta di casa). Questo è per lo scopo di firma del codice con chiave privata (passphrase richiesta per sicurezza). Nessuno può averlo tranne lo sviluppatore dell'applicazione. Puoi metterlo in versione se sei l'unico ad avere accesso al repository, ma qualcuno può hackerarlo e poi cosa ...? Tutti possono fingere, autore del programma. Ci scusiamo per il mio inglese.

+0

Capisco a cosa serve, ma stai dicendo che la dichiarazione di Jeff Brand che "la temp .pfx è stata sostituita durante il processo di invio dello Store" non è corretta? Se è corretto, il pfx temporaneo viene utilizzato solo in modalità di debug sulla macchina locale, mai nell'applicazione distribuita. –

+0

"la temp .pfx viene sostituita durante il processo di invio dello Store". La mia risposta è generale. È possibile utilizzare il certificato PFX generato da sé con lo strumento Makecert (https://msdn.microsoft.com/en-us/library/ff699202.aspx). Visual Studio lo genera automaticamente, ma non importa. Per me, non può essere pubblicato per nessuno, perché contiene la chiave privata senza passphrase di default. –

Problemi correlati