No he podido encontrar nada al respecto (quizás solo estoy usando términos de búsqueda erróneos ...):
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?Línea de comandos Actualización de perfiles de suministro
Respuesta
Aquí está mi script de 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 la que ~/Perfiles/carpeta Library/MobileDevice/aprovisionamiento puede ser usado para construir con (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 colocó algunas diapositivas y notas over here. Mi correo electrónico está en mi sitio si tiene alguna pregunta al respecto.
genial, gracias por la respuesta. ¿Pero tienes alguna idea de cómo obtener $ 1? ¿Cómo se obtienen los perfiles en su máquina de construcción en primer lugar? – LordT
Mi trabajo es principalmente contratado, y cada cliente tiene su propia cuenta de iTunes Connect, así que les he delegado eso. Los capacité sobre cómo actualizar los perfiles de aprovisionamiento con nuevos UDID, y compartí una carpeta de Dropbox.com con cada uno de ellos donde guardan sus perfiles de aprovisionamiento específicos. El primer paso de mi proceso de compilación es actualizar los perfiles de provisión con los específicos del cliente en Dropbox, por lo que las compilaciones siempre usan lo último. Cargar un nuevo perfil también es un desencadenante de compilación, por lo que pueden agregar nuevos dispositivos y obtener una compilación nueva sin mi intervención. –
bien, eso tiene sentido. ¿Cómo se activa una nueva compilación con Dropbox? Folderactions? ¿O hay una opción específica para hacer esto? – LordT
Intente utilizar apple_dev_center.rb de https://github.com/lacostej/apple-dev
Se analiza la información del sitio web de desarrollador de Apple y descargar los perfiles para copiar a la ubicación correcta de forma automática.
Actualización: Cupertino ya no funcionará en iTunes más reciente. Ver en el uso sigh lugar
Suena como esta interfaz de línea de comandos le ayudará a cabo a lo grande:
https://github.com/nomad/cupertino
que le permite descargar todos los perfiles de distribución al igual que (gracias @tdubik):
ios profiles:download:all --type distribution
Otro enfoque sería utilizar un Ente licencia de desarrollo rápido ($ 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 a la tienda de aplicaciones, pero si usted es una casa de desarrollo que crea montones de aplicaciones para clientes, puede facilitar bastante su proceso de "crear y enviar a clientes". ¡pieza! 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.
Las licencias empresariales no son para la distribución de la tienda de aplicaciones, por lo que tendría que tener otra cuenta de desarrollador con Apple para usar esto de manera productiva (suponiendo que planea enviar sus aplicaciones a la tienda de aplicaciones). – danieljimenez
Buen punto ... Olvidé mencionarlo ... ¡gracias! –
¡Gracias por el enlace de Github! La mejor respuesta aquí. Sin embargo, no recomendaría usar Enterprise para crear aplicaciones para clientes: a Apple no le gusta eso. Enterprise es "para implementación interna dentro de la compañía solamente", y creo que el acuerdo dice que usted debe tener el control de todos los dispositivos que se usan con Enterprise. – Sperr
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 necesita cualquier perfil provisional de la aplicación ya instalado en el sistema. Me arrojó un error de lo contrario.
temporary_profile_name = Solo el nombre del perfil, no necesita extensión.
Sigh
puede gestionar los perfiles de aprovisionamiento 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 source for how they actually install a profile once they've downloaded it.
Afortunadamente, es muy similar a James J's answer:
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 un script 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://stackoverflow.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 uuid-from-mobileprovision.bash
guión:
#!/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
- 1. Actualización a la última versión de la línea de comandos
- 2. XCode Error de "Muy pocos elementos en equipos" al actualizar los perfiles de suministro
- 3. ¿Por qué Xcode 4.5 no actualiza los perfiles de suministro? Tampoco agregará dispositivos al portal
- 4. ¿Cómo puedo ejecutar el generador de perfiles desde la línea de comandos?
- 5. Java: Actualización de texto en la línea de comandos sin una nueva línea
- 6. pestaña actual de actualización de Firefox desde la línea de comandos
- 7. Javascript para utilidades de línea de comandos
- 8. emular unix 'cortar' usando comandos de línea de comandos/línea de comando de Windows estándar
- 9. solicitud de construcción de Xcode desde la línea de comandos
- 10. comandos de cadena en la línea de comandos PowerShell
- 11. Análisis de instrucción de línea de comandos
- 12. Credenciales de línea de comandos de JConsole
- 13. ¿perfiles maven o perfiles de resorte?
- 14. pg_dump: demasiados argumentos de línea de comandos
- 15. Java argumentos de la línea de comandos
- 16. Google OAuth2 ejemplo de línea de comandos
- 17. Línea de comandos de Java con .jar
- 18. Fabfiles con argumentos de línea de comandos
- 19. * en la línea de comandos de linux
- 20. Línea de comandos de Eclipse Java
- 21. Analizador de línea de comandos para Qt4
- 22. BB10 cascadas Desarrollo de línea de comandos
- 23. Argumentos de QtCreator y línea de comandos
- 24. Vim línea de división de comandos
- 25. corte de comandos de línea nueva
- 26. argumento de línea de comandos GCC pickiness
- 27. compilación de línea de comandos utilizando cl.exe?
- 28. Herramientas Xcode 4.3 de línea de comandos
- 29. Recuperando el historial de línea de comandos
- 30. Argumentos de línea de comandos de Delphi Windows Services
Gracias por esta pregunta. Hasta ahora, mi solución de línea de comandos era '$ open vnc: // server' ;-) – mpontillo
Eche un vistazo a la siguiente url;
http://stackoverflow.com/questions/4369119/how-to-install-developer-certificate-private-key-and-provisioning-profile-for-ios Creo que será de ayuda. – jfalexvijay