【问题标题】:Find provisioning profile in Xcode 5在 Xcode 5 中查找配置文件
【发布时间】:2023-03-23 08:04:02
【问题描述】:

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

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

【问题讨论】:

标签: xcode provisioning-profile xcode5


【解决方案1】:

我找到了一种方法来了解您的配置文件是如何命名的。在构建设置的代码签名部分中选择您想要的配置文件,然后再次打开选择视图并单击底部的“其他”。然后出现一个以当前选定的配置文件命名的视图。

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

~/Library/MobileDevice/Provisioning Profiles

更新:

对于终端:

cd ~/Library/MobileDevice/Provisioning\ Profiles

【讨论】:

  • 终端:cd ~/Library/MobileDevice/Provisioning\ Profiles
  • 查找自动生成的配置文件使用grep -l "iOSTeam Provisioning Profile: com.your.bundle.id." *
  • 是否可以更改配置文件的默认位置..?当我们使用“xcodebuild”命令行工具构建时,如何告诉xcode使用其他位置的配置文件..?
  • For terminal: cd ~/Library/MobileDevice/Provisioning\ Profiles 必须突出显示谢谢@tsafrir
【解决方案2】:

它不完全适用于 Xcode5,但这个问题链接了想要检查配置文件在哪里的人:
关注文档https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html

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

10 您可以在每个配置文件上启动上下文菜单,然后单击“在 Finder 中显示”或“移至废纸篓”。

【讨论】:

    【解决方案3】:

    xCode 6 允许您右键单击帐户下的配置文件 -> 详细信息(您在那里的屏幕截图)并显示一个弹出窗口“在 finder 中显示”。

    【讨论】:

      【解决方案4】:

      以下内容在命令提示符下对我有用

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

      使用 shell one-liner 更难找出特定配置文件使用了哪些签名密钥。基本上你需要这样做:

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

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

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

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

      【讨论】:

        【解决方案5】:

        在这里查看:

        ~/Library/MobileDevice/Provisioning Profiles
        

        【讨论】:

        • 供应配置文件在文本编辑器中是可读的,因此您可以在文本编辑器中打开此目录中的文件,例如open -a TextEdit /Users/$(whoami)/Library/MobileDevice/Provisioning\ Profiles/4A733DA3-07E3-43A3-9AB2-2D25070153EB.mobileprovision 并搜索“Name”以查找显示在 Apple 会员中心或 Xcode 帐户首选项中的个人资料名称。
        【解决方案6】:

        如果使用以下标准来定位配置文件就足够了:

        <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

        【讨论】:

        • 好东西。只需在 awk 命令前添加cd "${HOME}/Library/MobileDevice/Provisioning Profiles/",您就可以在任何地方调用它。
        【解决方案7】:

        我编写了一个简单的 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
        

        【讨论】:

          【解决方案8】:

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

          【讨论】:

          • “iPhone 配置实用程序”被"Apple Configurator"取代
          • 但 Apple Configurator 不会像 iPhone 配置实用程序那样自动定位配置文件。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-09-26
          • 1970-01-01
          • 2014-02-20
          • 1970-01-01
          • 1970-01-01
          • 2013-11-05
          相关资源
          最近更新 更多