如何从代码访问iOS Developer Certificate

有没有办法知道哪个证书应用程序已签名?

我想保护应用程序免于与其他开发人员证书一起辞职。

假设我们有客户端 – 服务器应用程序。 并且服务器保留与开发者证书相关联的唯一密钥

因此,对于服务器的每个请求,我们将传递此密钥,如果应用程序将与另一个开发人员的证书重新组装,那么服务器将知道这一点。

这个有可能? 或者可能有另一种方法来防止辞职?

您可以通过手动解析应用程序包中包含的embedded.mobileprovision文件中的数据来了解用于签署应用程序的证书和配置文件。 如果查看该文件,您将看到有关证书和配置文件的信息。

以下是如何以编程方式从您的应用程序中获取嵌入的配置文件数据的示例:

 NSString* bundleDirectory = [[NSBundle mainBundle] bundlePath]; NSString* db = [NSString stringWithFormat:@"%@/embedded.mobileprovision", bundleDirectory]; NSData* data = [NSData dataWithContentsOfFile:db]; // parse through the data to get your provisioning profile info. I'd recommend opening up the profile that is inside your .app to see how it is structured. 

然而:

我不确定为什么你需要这样做,因为没有人可以重新签署您的应用程序,除非他们拥有正确的证书来匹配为您的应用程序的捆绑ID制作的配置文件。

获得此function的唯一方法是拥有拥有捆绑ID的Apple开发者帐户的凭据,或者是否有人“访问”您的证书和配置文件。

如果后者发生,我相信您应该从Apple开发者帐户中撤销该配置文件,并创建一个新的安全漏洞。 这样,只要您可以访问开发人员帐户,就可以始终以这种方式踩踏这种安全漏洞,而不是在客户端和服务器之间编写代码来检查它。