加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 如何以编程方式检测配置文件用于开发或分发

发布时间:2020-12-15 02:05:01 所属栏目:百科 来源:网络整理
导读:我想检测给定的配置文件是开发配置文件还是发行版(adhoc或app store)配置文件。我需要以编程方式纯粹做到这一点。 我已经了解如何检测adhoc vs appstore。而且我对开发者与发行有特别的兴趣。 我已经检查了每种类型的配置文件内部的plist,并且找不到可辨别
我想检测给定的配置文件是开发配置文件还是发行版(adhoc或app store)配置文件。我需要以编程方式纯粹做到这一点。

我已经了解如何检测adhoc vs appstore。而且我对开发者与发行有特别的兴趣。

我已经检查了每种类型的配置文件内部的plist,并且找不到可辨别的差异(通过安全性cms -D -i#{@ profilePath})。我也研究了openssl api,并且正在使用它来进行一些证书操作。

这是一个自定义的xcode自动构建系统。作为预构建验证的一部分,我需要确保指定的配置文件不用于开发。

这是甚么可能吗?如果是这样,我如何以编程方式区分两者?

提前感谢任何想法!

解决方法

这是我在自己的一个构建系统中处理的一个非常相同的目的的东西…让我们回到当时的“iPhone开发者计划”的第1天。如果你当时在社区周围,你可能会记得,工具链是…我们说的不太友好,而不是今天。

当您要为AppStore或AdHoc构建构建时,您必须制作这个好奇的权利.plist文件,然后将一个XML块粘贴到该文件的正文中。然后,您运行该构建,当时发生了什么似乎是魔术,并且该文件的纯粹存在使构建工作成为可能,您可以手动构建您的IPA,并按照惯例进行业务。现在我们已经比几年前的年龄还要长一些,比起SDK早期还要聪明一点,我们已经认识到,魔术的XML Blob实际上并不是如此神奇 – “get-task-allow” key是一个设置,用于指示二进制文件是否应该允许其他进程(或许是调试器)附加到二进制文件。当使用开发配置配置文件签名应用程序时,此密钥将设置为“true”(从而允许LLDB附加并与应用程序交互)…当然,使用分发配置配置文件签名应用程序时,此密钥将被设置到“假”。

苹果公司在Tech Note TN2250年提供了一些关于从配置资料中读取XML(以及扩展权限)的更新:

security cms -D -i /path/to/the.app/embedded.mobileprovision

这将返回Provisioning配置文件中的XML – 从中??可以解析出’get-task-allow’的键值对,并使用该值来确定Provisioning Profile是否为Development或Distribution。

我绝对同意,有一个工具可以直接告诉我们,所以我们不必嗅探个人资料的线索,但同时,至少我们有一个非常可靠的,尽管迂回的方式在运行之前做出这样的区别,并建立我们无法使用的构建。

祝你好运,让我知道,如果你需要更多的澄清或有其他问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读