Udostępnij xcodebuild.plik mobileprovision
Konfiguruję Jenkinsa do automatyzacji kompilacji iOS. Czy istnieje jakakolwiek możliwość zapewnienia a .plik mobileprovision, który nie jest dodawany do narzędzia aprowizacji w Xcode do xcodebuild?
Wiem, że mogę używać PROVISIONING_PROFILE i PROVISIONING_PROFILE [sdk=iphoneos*], ale wymagają one dodania profilu provisioning do organizera.
Wiem, że mogę wykonać operację z xcrun. Ale przed uruchomieniem xcrun muszę pomyślnie podpisać aplikację z xcodebuild.
Czy jest jakiś sposób, że mogę po prostu podać plik profilu provisioning (.mobileprovision) do xcodebuild?
2 answers
Mamy na to rozwiązanie - zasadniczo to, co musisz zrobić, to "zainstalować".plik mobileprovision kopiując go do katalogu o nazwie uuid pliku MOBILEPROVISION. To jest to, co Xcode Organizer rzeczywiście robi, gdy dwukrotnie kliknąć .plik mobileprovision.
Istnieje mały program o nazwie mpParse, który może wyodrębnić UUID z pliku mobileprovision, którego skrypt używa-link do pobrania w kodzie. To jest ŚMIERTELNIE PROSTE skopiować mobileprovision / align = "left" /
Oto skrypt powłoki, który zrobiłem do tego:
#!/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"
Skrypt można pobrać bezpośrednio z https://gist.github.com/2568707
Po uruchomieniu skryptu możesz użyć PROVISIONING_PROFILE i PROVISIONING_PROFILE[sdk=iphoneos*] w xcodebuild, aby utworzyć swoją aplikację. Używamy tego w produkcji.
Edit: dla odniesienia, zadałem zasadniczo to pytanie tutaj jakiś czas temu (Może Xcode .plik mobileprovision be 'zainstalowany' z wiersza poleceń?) i wyskoczył z powyższym, gdy nikt nie zdawał się wiedzieć: -)
Aktualizacja:
Jako alternatywę dla mpParse można użyć narzędzi apple:
/usr/libexec/PlistBuddy -c 'Print UUID' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:08
Jeśli używasz sigh z fastlane możesz przypisać jego wyjście do zmiennej
provision_id=sigh
To również działa, jeśli sigh ma params: sigh(...)
To jedyny skrypt, który mi zadziałał:
`var=$(grep UUID-A1-a | grep-io "[- A-Z0-9]{36}")'
Stosować z:
"$var.mobileprovision"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-02 09:58:56