Je suis en train de configurer Jenkins pour automatiser les versions iOS. Existe-t-il une possibilité de fournir un fichier .mobileprovision qui n'est pas ajouté à l'outil de provisioning dans Xcode to xcodebuild?
Je sais que je peux utiliser PROVISIONING_PROFILE et PROVISIONING_PROFILE [sdk = iphoneos *], mais ils nécessitent l'ajout du profil d'approvisionnement à l'organisateur.
Je sais que je peux faire l'opération avec xcrun. Mais avant d'exécuter xcrun, je dois signer l'application avec xcodebuild.
Est-il possible que je puisse simplement fournir le fichier de profil d'approvisionnement (.mobileprovision) à xcodebuild?
Nous avons une solution à cela. En gros, vous devez «installer» le fichier .mobileprovision en le copiant dans un répertoire nommé d'après l'UUID du fichier de provision pour mobile. C'est ce que fait l'organiseur Xcode lorsque vous double-cliquez sur un fichier .mobileprovision.
Il existe un petit programme appelé mpParse qui peut extraire l'UUID du fichier mobileprovision utilisé par le script - un lien à télécharger dans le code. Il est alors extrêmement simple de copier le fichier mobileprovision au bon endroit.
Voici un script Shell que j'ai créé pour cela:
#!/bin/sh
# 2012 - Ben Clayton (benvium). Calvium Ltd
# Found at https://Gist.github.com/2568707
#
# This script installs a .mobileprovision file without using Xcode. Unlike Xcode, it'll
# work over SSH.
#
# Requires Mac OS X (I'm using 10.7 and Xcode 4.3.2)
#
# IMPORTANT NOTE: You need to download and install the mpParse executable from http://idevblog.info/mobileprovision-files-structure-and-reading
# and place it in the same folder as this script for this to work.
#
# Usage installMobileProvisionFile.sh path/to/foobar.mobileprovision
if [ ! $# == 1 ]; then
echo "Usage: $0 (path/to/mobileprovision)"
exit
fi
mp=$1
uuid=`/usr/libexec/PlistBuddy -c 'Print UUID' /dev/stdin <<< $(security cms -D -i ${mp})`
echo "Found UUID $uuid"
output="~/Library/MobileDevice/Provisioning Profiles/$uuid.mobileprovision"
echo "copying to $output.."
cp "${mp}" "$output"
echo "done"
Vous pouvez télécharger le script directement à partir de https://Gist.github.com/2568707
Après avoir exécuté le script, vous pouvez utiliser PROVISIONING_PROFILE et PROVISIONING_PROFILE [sdk = iphoneos *] dans xcodebuild pour créer votre application. Nous l'utilisons en production.
Edit: Juste pour référence, j’ai posé cette question il ya un petit bout de temps ( Est-ce qu’un fichier .mobileprovision de Xcode peut être "installé" à partir de la ligne de commande? ) et est venu avec ce qui précède quand personne ne semblait le savoir :-)
Mise à jour: Comme alternative à mpParse, on pourrait utiliser les outils Apple: /usr/libexec/PlistBuddy -c 'Print UUID' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)
Si vous utilisez sigh de fastlane, vous pouvez affecter sa sortie à une variable provision_id=sigh
cela fonctionne aussi si soupir a params: sigh(...)
C'est le seul script qui a fonctionné pour moi:
`var = $ (grep UUID -A1 -a | grep -io" [-A-Z0-9] {36} ")
utiliser avec: "$var.mobileprovision"