我编写了一个脚本,使用xcodebuild
生成iPhone应用程序的AdHoc版本。
我想编辑此脚本以输出用于签署构建的配置文件的名称。
这将允许我在自动生成的zip中包含Provisioning Profile。这样,我就可以自动将存档发送给AdHoc测试人员,并确保他们拥有正确的配置文件来安装应用程序。
有没有办法提取用于签署应用程序的供应配置文件名称或文件:
取消授权suggested使用命令security
获取用于签署应用程序的证书的名称。获得此信息后,有没有办法找到配置文件的名称?
以下是我的尝试:
遗憾的是,构建期间xcodebuild的输出不包含此信息。在CodeSign步骤中,有一行:
/usr/bin/codesign -f -s "iPhone Distribution: My name" ...
但我无法将其与证书相匹配。
我调查使用了编码,命令
/usr/bin/codesign -d -vvv --entitlements - -r - /Users/lv/Desktop/TicTacBoo.app/TicTacBoo看起来很有希望,但它没有给我所需的信息。
答案 0 :(得分:6)
配置文件已在应用程序中。您的zip文件中不需要另一个副本(除非您的测试人员不了解如何在应用程序内部使用该副本。)
它名为YourApplication.app/embedded.mobileprovision
这不能解答您的问题,因为原始文件名已丢失,但它似乎可以解决您的更大问题。
答案 1 :(得分:2)
您可以使用终端的“安全”命令;不幸的是,至少在我使用Snow Leopard的MBP上,它似乎会导致您需要发出的命令之一出现分段错误。有关更多信息,请从终端发出
man security
无论如何,假设你的开发/生产证书存储在登录密钥链中,你可以试试这里:
security unlock-keychain login.keychain;
security find-certificate -a -c "iPhone Distribution: Your name" -p > cert.pem;
第二个命令导致分段错误(由-c参数引起),但它应该正是您所需要的。或者,您可以使用
security find-identity -p codesigning -v;
获取可用于对应用程序进行代码签名的所有有效证书的列表。 对于每个证书,输出还包含SHA1消息摘要,以便您可以轻松搜索与“iPhone Distribution:Your name”关联的SHA1摘要匹配的钥匙串中的证书。但是,这需要您使用钥匙串API编写自己的应用程序。
让我知道这是否适用于您的Mac或您遇到相同的分段错误问题。
编辑/更新:我已经验证了其他计算机上的错误并向Apple提交了错误。
答案 2 :(得分:0)
如何查看“mobileprovision”类型文件的_CodeSignature / CodeResources plist文件(构建的应用程序)?
这是使用默认值(1)读取plist文件的方法。您必须将CodeResources文件复制到带有“.plist”后缀的内容以保持默认值...
cp /build/Distribution-iphoneos/MyApp.app/_CodeSignature/CodeResources /tmp/defaults.plist
defaults read /tmp/defaults files |grep .mobileprovision |grep -v embedded.mobileprovision
(在我的测试用例中,那里有2个.mobileprovision条目;忽略名为“embedded.mobileprovision”的那个)