在Xcode 5中查找配置文件


104

在Xcode 5中,我可以在下获得供应配置文件列表Xcode >> preferences >> accounts >> view details。我想复制个人资料并将其发送给我的一位客户,但是我无法使用“ 在Finder中显示个人资料 ”选项右键单击它来查找它。

如何在XCode 5中获取特定的配置文件,或者每次都必须从developer.apple下载它?

在此处输入图片说明


将此解决方案用于Xcode 5! stackoverflow.com/a/18504418/1463604
Nishant 2013年

Answers:


223

我找到了一种方法来查明您的配置文件的命名方式。在构建设置的代码符号部分中选择所需的概要文件,然后再次打开选择视图,然后单击底部的“其他”。然后出现一个带有当前所选配置文件命名的视图。

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

~/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 2015年

1
是否可以更改配置文件..的默认位置?当我们使用“ xcodebuild”命令行工具进行构建时,如何告诉xcode使用其他位置的配置文件?
Sreedhar GS

For terminal: 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 Member Center中或在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

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

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

转储每个证书。输出中第二个commonName之后的行将是键名,例如“ iPhone开发人员: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
好东西。只需cd "${HOME}/Library/MobileDevice/Provisioning Profiles/"在awk命令之前添加,就可以从任何位置调用它。
onekiloparsec 2014年


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

3

它并不完全适合Xcode5,但此问题链接了想要检查配置文件位置的人员:
以下文档https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html

  1. 选择“ Xcode”>“首选项”。
  2. 点击窗口顶部的帐户。
  3. 选择您要查看的团队,然后单击查看详细信息。 在此处输入图片说明 在出现的对话框中,查看您的签名身份和配置文件。如果证书旁边显示“创建”按钮,则说明尚未创建。如果在配置文件旁边显示“下载”按钮,则该按钮不在您的Mac上。 在此处输入图片说明

十个您可以在每个配置文件上启动上下文菜单,然后单击“在Finder中显示”或“移至垃圾箱”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.