2012-07-03 25 views
42

He creado una aplicación C#/XAML estilo Metro, y ahora estoy intentando agregarla al control de versiones (Git y, más tarde, GitHub). Eso significa averiguar qué archivos pertenecen al control de versión y cuáles no.¿Debo agregar el archivo TemporaryKey.pfx de mi aplicación Metro al control de versiones?

Cuando creé mi proyecto Metro, Visual Studio agregó un archivo llamado ProjectName _TemporaryKey.pfx. Según lo que he leído, los archivos .pfx aparentemente tienen algo que ver con la firma de código o certificados o algo así. Aún no he encontrado nada que explique exactamente lo que significan en el contexto de las aplicaciones estilo Metro, o cómo se supone que debes administrarlas.

Estoy planeando insertar mi código en GitHub (en un repositorio público). A más largo plazo, planeo poner mi aplicación en la tienda de Windows. Si se requiere el archivo .pfx para compilar el proyecto, entonces será mejor que lo revise. Si contiene una identidad digital que me identifique como el autor de la aplicación, y publicarla, permitiría que cualquiera en Internet inserte nuevas versiones de mi aplicación. en la tienda de Windows sin mi conocimiento, entonces será mejor que no comprobarlo en la.

Así que mi pregunta es, ¿hay algo secreto en el TemporaryKey.pfx archivo? ¿Debo verificarlo en mi repositorio público o debería dejarlo fuera del control de la fuente? (¿Y qué se rompería si no lo puse en control de fuente, pero luego quise verificar mi código en otra computadora?)

+1

Esa es una excelente pregunta. Si bien no tengo una buena respuesta, es bastante fácil generar una nueva clave, por lo que el código aún se puede usar sin ella (solo requiere un paso adicional), debe ir a su Package.appxmanifest/pestaña Packaging/[ Elija Certificado ...]/[Configurar certificado ...]/[Crear certificado de prueba ...] - que le permite crear un nuevo archivo pfx, que también es útil si el anterior no es válido - por ejemplo cuando actualiza su proyecto desde una versión anterior de Win8 y las herramientas de desarrollo. –

+1

De acuerdo, es bueno saberlo. ¿Sabes si algo se romperá si generas un nuevo certificado de prueba? ¿Tendrá problemas para enviar nuevas versiones de su aplicación a la tienda de aplicaciones? ¿O no aceptarán nada con un certificado de prueba en primer lugar? ¿Tiene que comprar un certificado en algún lugar antes de poder enviarlo a la tienda de aplicaciones? Tiene que haber documentación para esto en alguna parte, simplemente no he podido encontrarlo. –

+0

No, lo siento. No he visto demasiados detalles para esto y todavía no tengo el token de la tienda o he publicado una aplicación en la tienda. –

Respuesta

33

El .pfx se usa en el certificado de código temporal para firmar su aplicación para su implementación en su máquina para que pueda depurar. Puede eliminarlo, pero se deberá generar una nueva clave temporal (a través de la pestaña Packaging en el diálogo package.appxmanifest). Siempre lo dejo en el código que publico, ya que es más fácil para la persona que usa el código (es decir, no hay mensajes de error). Si observa otros proyectos fuente de WinRT (MVVMLight, por ejemplo), también incluyen .pfx para su comodidad.

Si entiendo las cosas correctamente, el temp .pfx se reemplaza durante el proceso de envío de la tienda, por lo que no tiene que preocuparse por la utilización del temp .pfx por parte de otra persona.

+0

Sí, cuando crea el paquete de la aplicación para su publicación con fines comerciales, se generará un nuevo archivo de clave $ appname $ _StoreKey.pfx. Siempre guardo $ appname $ _TemporaryKey.pfx y $ appname $ _StoreKey.pfx en el control de versiones. –

+6

Entonces, la siguiente pregunta sería ... una vez que publiques la aplicación, obtienes un '* _StoreKey.pfx' ¿No es seguro marcar eso? – kiewic

+0

No verificaría la clave de la tienda, especialmente no en un repositorio alojado que luego se puede compartir con otros miembros del equipo. En VSTS puede usar la opción "Archivos seguros" para esto, si desea usar la integración continua donde necesita el PFX nuevamente. – Patric

0

.PFX es su llave (como una llave para la puerta de su casa). Esto es para fines de firma de código con clave privada (se requiere una frase de contraseña para seguridad). Nadie puede tenerlo, excepto el desarrollador de la aplicación. Puedes versionarlo si eres el único que tiene acceso al repositorio, pero alguien puede hackearlo y luego ¿qué ...? Todos pueden simular que usted es el autor del programa. Lo siento por mi inglés.

+0

Entiendo para qué sirve, pero ¿está diciendo que la afirmación de Jeff Brand de que "el temp .pfx se reemplaza durante el proceso de envío de la tienda" es incorrecta? Si es correcto, entonces el pfx temporal solo se usa en el modo de depuración en su máquina local, nunca en la aplicación desplegada. –

+0

"el temp .pfx se reemplaza durante el proceso de envío de la tienda". Mi respuesta es general. Puede usar el certificado PFX generado por usted mismo con la herramienta Makecert (https://msdn.microsoft.com/en-us/library/ff699202.aspx). Visual Studio lo genera automáticamente, pero no importa. Para mí, no se puede publicar para nadie porque contiene una clave privada sin frase de contraseña de manera predeterminada. –

Cuestiones relacionadas