gpt4 book ai didi

xcode - 如何以编程方式检测配置文件是用于开发还是分发

转载 作者:行者123 更新时间:2023-12-03 10:09:43 25 4
gpt4 key购买 nike

我想检测给定的配置文件是开发配置文件还是分发(临时或应用商店)配置文件。我需要完全以编程方式执行此操作。

我已经了解如何检测 adhoc 与 appstore。我对开发与分发特别感兴趣。

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

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

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

提前感谢您的任何想法!

最佳答案

这是我在我自己的构建系统中解决的问题,目的大致相同……让我们回到当时的“iPhone 开发人员计划”的第 1 天。如果您当时在社区中,您可能还记得工具链是……我们可以说不如今天友好吗……。

当您想要为 AppStore 或 AdHoc 构建构建时,您必须制作这个奇怪的 entitlements.plist 文件,然后将 XML 的 blob 粘贴到该文件的正文中。然后你运行了构建,在那个时候发生了看起来很神奇的事情,并且该文件的存在使构建工作,允许你手动构建你的 IPA,并像往常一样继续工作。现在,我们比 SDK 的早期时代大了几岁,希望比 SDK 的早期更聪明一点,我们开始认识到神奇的 XML blob 实际上根本没有那么神奇——“get-task-allow” key 是一个设置,用于指示二进制文件是否应允许其他进程(例如调试器)附加到二进制文件。使用开发配置文件签署应用程序时,此 key 将设置为“true”(从而允许 LLDB 附加您的应用程序并与您的应用程序交互)……当然,使用分发配置文件签署应用程序时,将设置此 key '假'。

Apple 在 Tech Note TN2250 中提供了一些更新关于从 Provisioning Profiles 中读取 XML(以及扩展的权利):

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



这将返回供应配置文件中的 XML —— 从那里您可以解析出“get-task-allow”的键值对,并使用该值来确定供应配置文件是开发还是分发。

我完全同意,如果有一个工具可以直接告诉我们,这样我们就不必通过嗅探来寻找线索,但同时,至少我们有一种高度可靠的,尽管迂回的方式在跑掉并进行我们无法使用的构建之前进行区分。

祝您好运,如果您需要更多说明或有其他问题,请告诉我。

关于xcode - 如何以编程方式检测配置文件是用于开发还是分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com