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?

Author: Fredrik Andersson, 2012-06-21

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)

 46
Author: Ben Clayton,
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"

 0
Author: wolffan,
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