用.mobileprovision文件提供xcodebuild

我正在设置Jenkins来自动化iOS版本。 有没有可能提供一个.mobileprovision文件没有添加到configuration工具在xcode到xcodebuild?

我知道我可以使用PROVISIONING_PROFILE和PROVISIONING_PROFILE [sdk = iphoneos *],但是他们需要将configuration文件添加到pipe理器中。

我知道我可以用xcrun做这个操作。 但是在运行xcrun之前,我必须使用xcodebuild成功签署应用程序。

有什么办法,我可以只提供configuration文件文件(.mobileprovision)xcodebuild?

我们为此提供了一个解决scheme – 实质上,您需要做的是通过将.mobileprovision文件复制到以移动configuration文件的UUID命名的目录中来“安装”。 这是双击一个.mobileprovision文件时Xcode Organizer实际执行的操作。

有一个名为mpParse的小程序,可以从脚本使用的mobileprovision文件中提取UUID – 在代码中下载链接。 然后,将mobileprovision文件复制到正确的位置很简单。

这是我做的这个shell脚本:

#!/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直接下载脚&#x672C;

一旦你运行脚本,你可以在xcodebuild中使用PROVISIONING_PROFILE和PROVISIONING_PROFILE [sdk = iphoneos *]来创build你的应用程序。 我们在生产中使用这个。

编辑:仅供参考,我在这里问了一些基本的问题( 可以从命令行“安装”Xcode .mobileprovision文件吗? ),当没有人似乎知道:-)

更新:作为mpParse的替代品,可以使用苹果工具: /usr/libexec/PlistBuddy -c 'Print UUID' /dev/stdin <<< $(security cms -D -i path_to_mobileprovision)

如果你使用fastlane的叹息,你可以把它的输出分配给一个variablesprovision_id=sigh

这也适用,如果叹息有参数: sigh(...)

这是我唯一的脚本:

`var = $(grep UUID -A1 -a | grep -io“[-A-Z0-9] {36}”)'

用于: "$var.mobileprovision"