¿Cómo guardo las cnetworkingenciales fuera del control de fuente en iOS?

Mi aplicación de iOS necesita cnetworkingenciales para conectarse a varias API. Como el proyecto es de código abierto, no quiero verificar las cnetworkingenciales en el repository de código fuente (git).

En última instancia, quiero poder hacer algo como esto en mi código de aplicación:

googleMapsApiKey = [AppCnetworkingentials googleMapsApiKey]; 

Donde AppCnetworkingentials se inicializa con un file de configuration no bajo control de fuente.

En el pasado, he estado usando lenguajes dynamics como Python o Ruby y he llegado a soluciones como esta para mantener las cnetworkingenciales fuera del control de la fuente. El enfoque es algo como esto:

  1. tener una API pública que, en time de ejecución, analiza un file que contiene todas tus cnetworkingenciales.
  2. El file de configuration que contiene todas las passwords se transmite fuera de banda (por ejemplo, encriptado en un correo electrónico).
  3. distribuir un file de cnetworkingenciales de ejemplo para que sirva como plantilla para otros desarrolladores

Sin embargo, no sé cómo aplicar este enfoque en iOS. No puedo simplemente colocar un file 'passwords.json' en la raíz de la fuente y analizarlo en la initialization de la aplicación. No puedo poner algo en el package de la aplicación, porque el package también está registrado en el control de la versión.

Tenga en count que esto no evitará que personas maliciosas extraigan las cnetworkingenciales de la aplicación comstackda . No estoy buscando resolver ese problema en este momento. Con esta pregunta, solo estoy interesado en mantener las cnetworkingenciales fuera del código fuente.

Esta es realmente una pregunta de SVC, y desde ese punto de vista, simplemente desea agregar la configuration a un único file y SVC ignorará ese file.

En general, agregaría en el file 'léame' que este file de configuration debe crearse en una location específica antes de que el proyecto sea válido.

A continuación, agregue el file al proyecto y asígnele la membresía objective (para que se copie en el package en time de compilation). Ahora, en el código, puede usar algo como:

 [[NSBundle mainBundle] pathForResource:@"accountConfig" ofType:@"plist"]; 

para get la ruta al file para cargar.