Ios 配置配置文件中plist周围的二进制数据是什么?
.mobileprovision文件的结构如下所示:Ios 配置配置文件中plist周围的二进制数据是什么?,ios,xcode,cocoa-touch,plist,provisioning-profile,Ios,Xcode,Cocoa Touch,Plist,Provisioning Profile,.mobileprovision文件的结构如下所示: <!-- small binary data --> <?xml version="1.0" encoding="UTF-8"?> <!-- plist data --> </plist> <!-- large binary data --> 关于这一点,我有几个问题: 这个二进制数据是什么 它有用吗 如何从.mobileprovision文件中提取plist而不搜索XML
<!-- small binary data -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- plist data -->
</plist>
<!-- large binary data -->
关于这一点,我有几个问题:
具体地说,当上述Q1和Q3都被回答时,我将考虑这个问题(并给予它+100的赏金)。 < P>文件基本上是公共分发密钥+苹果公共证书链+允许安装的设备——只要IPA文件同样签名。p> 您的密钥被编码到plist条目中。plist后面的二进制数据是相关的公共证书:Apple根公共证书(可从和Apple iPhone证书颁发机构下载)(可通过Apple portal下载) [根据评论更新] 真正的目标是计算出移动设备配置文件中使用的证书“common name”,以便可以重新签署应用程序。 在移动配置文件
ApplicationIdentifierPrefix
中,标记包含证书用户ID。此数字可用于在密钥链工具中查找证书
因此,手动执行以下步骤:
ApplicationIdentifierPrefix
编号security find certificate-a>a.out
然后grep查找ID。然后从同一记录中查找通用名称我无法回答您最初的问题,但我可以解释如何从.mobileprovision文件中提取签名证书:
正如您在脚本中看到的,我没有回答您的第三个问题,我只是删去了第一行和结束标记后的所有内容。我终于从SO那里得到了答案 基本上,.mobileprovision文件是一个加密的XML文件。它可以在OS X上使用
security
进行解码:
security cms -D -i /path/to/profile.mobileprovision
使用
如果收到错误消息security:SecPolicySetValue:传递给函数的一个或多个参数无效
只需将错误传递到/dev/null
security cms -D -i /path/to/profile.mobileprovision 2> /dev/null
.mobileprovision文件是一个
plist是此ASN.1消息中存储的值之一。基本上我想退出具有不同配置文件的应用程序。我想知道,我们是否可以从新配置文件本身提取签名证书信息,而不是显式指定退出应用程序的证书名。查看一个.mobileprovision文件让我想到了这一点。我如何从这个文件中提取plist信息?好吧,你不能辞职-因为你必须在XCode编译期间对二进制文件进行签名,然后是最终的IPA。虽然后者可能只是将XX.mobileprovising文件作为embedded.mobileprovising添加到应用程序包中。所以你的位置最重要的是你们有一个二进制IPA/应用程序,但并没有源代码?这对如何管理资源调配安全性进行了很好的分析。不,我并没有查看IPA中的plist文件。我们的部署过程是这样的——我们嵌入了一个带有临时资源调配配置文件的应用程序进行beta测试。若beta测试顺利,我们只需使用pp使用
xcrun
命令存储设置配置文件。现在,此命令的相关咒语要求我提供设置配置文件和签名证书名称。由于设置配置文件确实包含签名证书信息,我想知道我们是否可以避免编写此信息。非常感谢。但是,正如您所说aid,它没有回答最初的问题,它仍然非常有用——我终于了解到“DeveloperCertificates”密钥中的证书是x509证书,这是我打算问的;-)谢谢。通过这种方法获得的信息也可以通过在文本编辑器中打开mobileprovision获得。在XML之后,有一块额外的数据,使用security
无法解码;这正是我提出这个问题的原因。我想要的是一种可编程/可编写脚本的方式,只获取XML而不获取其他内容。
security cms -D -i /path/to/profile.mobileprovision 2> /dev/null