2011-04-18 7 views
7

En los Servicios Llavero Guía de programación que establece lo siguiente:.¿Cómo pruebo el acceso a una propiedad llavero después de la actualización a través de la AppStore?

"En el iPhone, los derechos Llavero dependen del perfil de datos utilizada para firmar la aplicación Asegúrese de utilizar siempre el mismo perfil de datos a través de diferentes versiones de su aplicación. "

No tengo ningún problema pero me gustaría probar que si proporciono una actualización de mi aplicación en la AppStore, todavía podrá acceder a los valores anteriores almacenados en el llavero. Intenté probar actualizando la aplicación con una versión firmada con un perfil de distribución ad-hoc que contenía el mismo ID de paquete y el mismo nombre de producto que el original, pero no se pudo acceder al valor anterior en el llavero.

¿Es la única opción para enviar la actualización a la AppStore y esperar que funcione?

Respuesta

-1

A menos que esté equivocado, para actualizar una aplicación en la tienda de aplicaciones necesita usar el mismo perfil de aprovisionamiento. Por lo tanto, dado que utilizará el mismo perfil, debe tener acceso a los mismos artículos de llavero.

0

En realidad, no es el archivo de aprovisionamiento el que importa, sino el ID de la aplicación. Específicamente, la identificación de semilla Bundle que configura al crear una ID de aplicación. El acceso al llavero está gobernado por él. Por lo tanto, siempre que su perfil use una ID de aplicación con la misma ID de Semilla Bundle, puede continuar accediendo a la información en la llavero. Tengo algunas aplicaciones que hacen esto.

Esto le permite crear un conjunto de aplicaciones que pueden acceder a los mismos elementos de llavero siempre que los configure para usar la misma ID de semilla Bundle. Entonces, si haces una versión ligera y una profesional, ambos pueden acceder a la misma información de llavero mientras mantienen el paquete separado para cosas como los valores predeterminados del usuario.

+0

¿Cómo configuras tu aplicación para que use la misma ID de aplicación que la versión anterior? Probé las técnicas mencionadas en el código de muestra de GenericKeychain pero, como la versión anterior no hizo uso del atributo de seguridad del grupo de acceso, parece que no funciona. Todavía no puedo acceder a la contraseña que se estableció en el llavero desde la aplicación que se instaló desde la tienda de aplicaciones. –

+0

También he intentado configurar la clave del identificador de la aplicación en Entitlements.plist a ##########. Com.companyname.etc, pero eso no parece ayudar. –

+1

Esta respuesta contradice directamente [documentos de apple] (http://developer.apple.com/library/ios/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html): * En iPhone, los derechos de Keychain dependen del aprovisionamiento perfil utilizado para firmar su aplicación. Asegúrese de utilizar sistemáticamente el mismo perfil de aprovisionamiento en las diferentes versiones de su aplicación. * ¿Cuál es el correcto, perfil de aprovisionamiento o ID de aplicación? –

2

Esta es una buena pregunta.

Uno de los principales motivos por los que es posible que desee almacenar algunos datos en el llavero es evitar que los usuarios malintencionados accedan a él. Esta es una frase bastante seca por sí sola, así que recomiendo leer about how someone might access that data.

Otra forma de acceder a los datos de llavero sería crear una aplicación maliciosa con el mismo ID de aplicación que la aplicación de destino. Apple ha asegurado esta ruta al exigir que el perfil de aprovisionamiento sea el mismo.


lo tanto, para responder a su pregunta, sólo se puede probar los datos llavero de actualización desde el mismo archivo de suministro, es decir

  1. ad hoc a Ad hoc
  2. App tienda a tienda de aplicaciones.

App store to app store no es realmente una opción ya que será demasiado tarde para entonces (su actualización estará en el mercado). Por lo tanto, en su lugar, debe eliminar la aplicación de la tienda de aplicaciones e instalar una versión ad hoc. Luego, vuelva a crear sus datos en el llavero, luego actualice a la última versión ad hoc y pruebe que funcionó.

Por supuesto, esto requiere que tengas una versión archivada ad hoc de la aplicación que está actualmente en la tienda de aplicaciones.Si no tiene esto, entonces no es posible probar una actualización.

Cuestiones relacionadas