Chúng tôi có giải pháp cho điều này - về cơ bản những gì bạn cần làm là 'cài đặt' tệp .mobileprovision bằng cách sao chép tệp vào thư mục có tên sau UUID của tệp dự phòng di động. Đây là những gì tổ chức Xcode thực sự thực hiện khi bạn bấm đúp vào tệp .mobileprovision.
Có một chương trình nhỏ được gọi là mpParse có thể trích xuất UUID từ tệp mobileprovision mà tập lệnh sử dụng - liên kết để tải xuống trong mã. Sau đó, nó đã chết đơn giản để sao chép tập tin mobileprovision đến đúng nơi.
Dưới đây là một kịch bản shell tôi đã thực hiện để làm điều này:
#!/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"
Bạn có thể tải về các tập lệnh trực tiếp từ https://gist.github.com/2568707
Một khi bạn đã chạy kịch bản, bạn có thể sử dụng PROVISIONING_PROFILE và PROVISIONING_PROFILE [sdk = iphoneos *] trong xcodebuild để tạo ứng dụng của bạn. Chúng tôi sử dụng nó trong sản xuất.
Chỉnh sửa: Chỉ để tham khảo, tôi chủ yếu hỏi câu hỏi này ở đây một thời gian ngắn trở lại (Can an Xcode .mobileprovision file be 'installed' from the command line?) và đã đưa ra ở trên khi không ai có vẻ biết :-)
Cập nhật: Là một thay thế cho mpParse người ta có thể sử dụng công cụ táo: /usr/libexec/PlistBuddy -c 'Print UUID' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)
Nguồn
2012-06-23 07:57:01
+1 giải pháp tuyệt vời - cảm ơn vì chia sẻ. – Till
Tuyệt vời! Thanks =) –
Vui vì tôi có thể giúp! –