これに対する解決策があります。基本的には、.mobileprovision ファイルを、モバイル プロビジョニング ファイルの UUID にちなんで名付けられたディレクトリにコピーして「インストール」する必要があります。これは、.mobileprovision ファイルをダブルクリックしたときに Xcode オーガナイザーが実際に行うことです。
スクリプトが使用する mobileprovision ファイルから UUID を抽出できる mpParse という小さなプログラムがあります - コード内のダウンロードへのリンク。次に、mobileprovision ファイルを正しい場所にコピーするのは非常に簡単です。
これを行うために作成したシェルスクリプトを次に示します。
#!/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"
スクリプトはhttps://gist.github.com/2568707から直接ダウンロードできます。
スクリプトを実行したら、xcodebuild で PROVISIONING_PROFILE と PROVISIONING_PROFILE[sdk=iphoneos*] を使用してアプリを作成できます。これを本番環境で使用します。
編集:参考までに、私は基本的にここでこの質問を少し前に尋ねました(コマンドラインからXcode .mobileprovisionファイルを「インストール」できますか?)誰も知らないようだったときに上記を思いつきました:-)
更新:
mpParse の代わりに、Apple ツールを使用できます。
/usr/libexec/PlistBuddy -c 'Print UUID' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)