在Xcode 5中查找配置文件

106
在Xcode 5中,我可以在“ Xcode >> 首选项 >> 帐户 >> 查看详细信息”下获取配置文件清单。我想要复制配置文件并将其发送给我的客户,但是我无法右键单击它以使用“ 在Finder中显示配置文件”选项找到它。

如何在XCode 5中获取特定的配置文件?或者我每次都需要从developer.apple下载吗? 输入图像说明

使用此解决方案适用于Xcode 5! - Nishant
可能是Xcode 5中缺少“配置文件”菜单项的重复问题。 - Simon East
8个回答

224

我找到了一种方法来查找您的预配配置文件的名称。在构建设置中的代码签名部分中选择您想要的配置文件,然后再次打开选择视图并在底部点击“其他”。然后会出现一个视图,其中显示当前选定的预配配置文件的名称。

现在,您可以在以下路径中找到配置文件:

~/Library/MobileDevice/Provisioning Profiles

更新:

对于终端:

cd ~/Library/MobileDevice/Provisioning\ Profiles

9
对于终端:cd ~/Library/MobileDevice/Provisioning\ Profiles - tsafrir
1
要查找自动生成的配置文件,请使用 grep -l "iOSTeam Provisioning Profile: com.your.bundle.id." * - tsafrir
1
有没有可能更改个人资料的默认位置..?如何告诉Xcode在使用“xcodebuild”命令行工具进行构建时使用其他位置的资料。? - Sreedhar GS
对于终端:cd〜/Library/MobileDevice/Provisioning\ Profiles必须突出显示,感谢@tsafrir。 - Ashok R

30

请在这里勾选:

~/Library/MobileDevice/Provisioning Profiles

8
配置文件可以在文本编辑器中读取,所以您可以在此目录中使用文本编辑器打开文件,例如 open -a TextEdit /Users/$(whoami)/Library/MobileDevice/Provisioning\ Profiles/4A733DA3-07E3-43A3-9AB2-2D25070153EB.mobileprovision,然后搜索 "<key>Name</key>" 以查找配置文件的名称,该名称与Apple成员中心或Xcode帐户首选项中显示的名称相同。 - jhavatar

18

以下命令在命令提示符下可行:

cd ~/Library/MobileDevice/Provisioning\ Profiles/
for f in *.mobileprovision; do echo $f; openssl asn1parse -inform DER -in $f | grep -A1 application-identifier; done

使用单行脚本查找特定配置文件使用的签名密钥较为困难。基本上,您需要执行以下操作:

openssl asn1parse -inform DER -in your-mobileprovision-filename

然后将每个base64数据块在DeveloperCertificates条目之后剪切粘贴到自己的文件中。 然后,您可以使用:

openssl asn1parse -inform PEM -in file-with-base64

转储每个证书。 输出中第二个commonName后面的行将是键名,例如“iPhone Developer: Joe Bloggs (ABCD1234X)”。


14

xCode 6允许您在帐户 → 详细信息(您的屏幕截图中显示的内容)下右键单击配置文件,并显示一个名为“在查找器中显示”的弹出窗口。


9
如果只需使用以下标准来查找配置文件,则可行:
<key>Name</key>
<string>iOS Team Provisioning Profile: *</string>

您可以使用awk扫描目录。这个一行命令将找到第一个包含以“iOS Team”开头的名称的文件。

awk 'BEGIN{e=1;pat="<string>"tolower("iOS Team")}{cur=tolower($0);if(cur~pat &&prev~/<key>name<\/key>/){print FILENAME;e=0;exit};if($0!~/^\s*$/)prev=cur}END{exit e}' *

这是一个返回第一个匹配项的脚本,但更易于使用。

#!/bin/bash

if [ $# != 1 ] ; then
    echo Usage: $0 \<start of provisioning profile name\>
    exit 1
fi

read -d '' script << 'EOF'
BEGIN {
    e = 1
    pat = "<string>"tolower(prov)
}
{
    cur = tolower($0)
    if (cur ~ pat && prev ~ /<key>name<\\/key>/) {
        print FILENAME
        e = 0
        exit
    }
    if ($0 !~ /^\s*$/) {
        prev = cur
    }
}
END {
 exit e
}
EOF


awk -v "prov=$1" "$script" *

可以在配置文件目录$HOME/Library/MobileDevice/Provisioning Profiles内调用该功能:
~/findprov "iOS Team"

为了使用该脚本,请将其保存在合适的位置并记得设置可执行模式;例如,chmod ugo+x


2
很好的东西。只需要在 awk 命令之前加入 cd "${HOME}/Library/MobileDevice/Provisioning Profiles/" ,你就可以在任何地方调用它。 - onekiloparsec

6
我写了一个简单的Bash脚本来解决这个愚蠢的问题。将你从developer.apple.com下载的指定副本的路径传递给它,它将在你的副本库中识别与之匹配的GUID重命名文件。
#!/bin/bash

if [ -z "$1" ] ; then
  echo -e "\nUsage: $0 <myprovision>\n"
  exit
fi

if [ ! -f "$1" ] ; then
  echo -e "\nFile not found: $1\n"
  exit
fi

provisionpath="$HOME/Library/MobileDevice/Provisioning Profiles"
provisions=$( ls "$provisionpath" )

for i in $provisions ; do
  match=$( diff "$1" "$provisionpath/$i" )
  if [ "$match" = "" ] ; then
    echo -e "\nmatch: $provisionpath/$i\n"
  fi
done

6
您可以使用“iPhone 配置实用程序”来管理配置文件。

"iPhone Configuration Utility" 已被 "Apple Configurator" 取代。 - mahal tertin
但是,与iPhone配置实用程序不同,Apple Configurator无法自动定位预配资料。 - Raptor

3
这个问题不完全是针对Xcode5的,而是帮助人们查看配置文件的位置。请按照以下文档操作:https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
  1. 选择Xcode > Preferences。
  2. 点击窗口顶部的 Accounts。
  3. 选择您要查看的团队,并单击 View Details。 enter image description here 在弹出的对话框中,查看您的签名身份和配置文件。如果证书旁边出现一个“创建”按钮,则表示该证书尚未创建。如果配置文件旁边出现“下载”按钮,则表示它不在您的Mac上。 enter image description here
然后,您可以在每个配置文件上启动上下文菜单,然后单击“在 Finder 中显示”或“移至回收站”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接