valid not identifiers found for development developer desarrollador cuenta couldn certificates apple app iphone xcode provisioning

iphone - not - Actualización de Línea de Comando de Perfiles de Aprovisionamiento



provisioning profile ios (5)

Actualización: Cupertino ya no trabajará en iTunes más reciente. Considera usar sigh lugar

Parece que esta interfaz de línea de comando ayudará a lo grande:

https://github.com/nomad/cupertino

que le permite descargar todos los perfiles de distribución de esa manera (gracias @tdubik):

ios profiles:download:all --type distribution

Otro enfoque sería utilizar una licencia de desarrollo empresarial ($ 300 / año) que le permite construir para dispositivos sin aprovisionamiento. Así que puedes construir tu aplicación y enviarla a un dispositivo sin tener que ir al centro Apple Dev o registrar ningún dispositivo nuevo.

Tenga en cuenta que esto no le permitiría distribuir su aplicación en la tienda de aplicaciones, pero si usted es una casa de desarrollo que crea montones de aplicaciones para sus clientes, ¡puede facilitar bastante su proceso de "creación y envío a clientes"! No estoy seguro de si esto estaría en las políticas de uso legítimo de Apple o no, así que por favor revise eso antes de considerar esa opción. Pero podría ser algo a tener en cuenta para los prototipos, etc., y cuando en realidad quieren enviarlo, obtienes que obtengan su propia licencia del programa de desarrollo.

No pude encontrar nada sobre esto (tal vez estoy usando los términos de búsqueda equivocados ...):
Estamos tratando de construir una configuración de integración continua sensible para nuestras aplicaciones. Para tener una implementación REALMENTE sensata, el servidor de compilación debería ser capaz de actualizar automáticamente los perfiles de aprovisionamiento utilizados desde Apple. Similar a lo que hace el organizador de X-Code, pero automágicamente a través de la línea de comando.
¿Alguna pista si eso es posible en absoluto?


Aquí está mi script bash, donde el primer argumento del script ($ 1) es la ubicación de los nuevos perfiles.

rm -Rf ~/Library/MobileDevice/Provisioning/ Profiles/* cp "$1"/*.* ~/Library/MobileDevice/Provisioning/ Profiles/

Básicamente, cualquier cosa en esa carpeta ~ / Library / MobileDevice / Provisioning Profiles / se puede usar para compilar (y se mostrará en Xcode).

Si está buscando pararse un sistema de CI, recientemente di una charla sobre el uso de Hudson para él, y coloco algunas diapositivas y notas aquí . Mi correo electrónico está en mi sitio si tiene alguna pregunta al respecto.


He estado tratando de hacer que esto funcione por algún tiempo. ¡Finalmente lo hizo!

Puede usar fastlane sigh para descargar e instalar solo el perfil provisional que necesita.

fastlane sigh renew --adhoc -n "provisional_profile_name" --app_identifier "your_app_identifier" -u "apple_login _username" --ignore_profiles_with_different_name

Nota: Este comando necesitaba un perfil provisional de la aplicación ya instalada en el sistema. Me arrojó un error de lo contrario.

provisional_profile_name = Solo el nombre del nombre del perfil, no necesita extensión.


Intenta usar apple_dev_center.rb desde https://github.com/lacostej/apple-dev

Analiza la información del sitio web del desarrollador de Apple y descarga los perfiles para que los copie automáticamente en la ubicación correcta.


Sigh puede administrar los perfiles de suministro para usted. Sin embargo, no es compatible con la instalación de perfiles que ya ha buscado. Sin embargo, todavía me pareció valioso mirar su fuente de cómo realmente instalan un perfil una vez que lo han descargado .

Afortunadamente, es muy similar a la respuesta de James J :

def self.install_profile(profile) UI.message "Installing provisioning profile..." profile_path = File.expand_path("~") + "/Library/MobileDevice/Provisioning Profiles/" uuid = ENV["SIGH_UUID"] || ENV["SIGH_UDID"] profile_filename = uuid + ".mobileprovision" destination = profile_path + profile_filename # If the directory doesn''t exist, make it first unless File.directory?(profile_path) FileUtils.mkdir_p(profile_path) end # copy to Xcode provisioning profile directory FileUtils.copy profile, destination if File.exist? destination UI.success "Profile installed at /"#{destination}/"" else UI.user_error!("Failed installation of provisioning profile at location: #{destination}") end end

Tengo una secuencia de comandos para realizar esta instalación local para mí:

#!/bin/bash -euo pipefail BASH_SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$BASH_SOURCE_DIR" # by default bash passes the glob characters if nothing matched the glob # disable that # http://.com/a/18887210/9636 shopt -s nullglob # this creates a proper bash array, which we need since our profiles # have funny characters in them MOBILE_PROVISIONS=(*.mobileprovision) # re-enable default nullglob behavior shopt -u nullglob # On a brand new machine that has never run any app on a development device # the ~/Library/MobileDevice/"Provisioning Profiles" directory doesn''t exist mkdir -p ~/Library/MobileDevice/"Provisioning Profiles" for mobileprovision in "${MOBILE_PROVISIONS[@]}" do uuid=$( ./uuid-from-mobileprovision.bash "${mobileprovision}" ) cp "${mobileprovision}" ~/Library/MobileDevice/"Provisioning Profiles"/"${uuid}".mobileprovision done

que depende de otra secuencia de comandos uuid-from-mobileprovision.bash :

#!/bin/bash -euo pipefail if [ ! -f "${1}" ] then echo "Usage: $0 <path/to/mobileprovision/file>" 1>&2 exit 1 fi UUID=$( grep --text --after-context=1 UUID "${1}" | grep --ignore-case --only-matching "[-A-Z0-9]/{36/}" ) if [ -z "${UUID}" ] then echo "Invalid mobileprovision file: ${1}" 1>&2 exit 2 else echo "${UUID}" fi