对于 future 的项目,我需要了解 Apple iOS IPA 文件 (iPhone/iPad) 的代码签名过程是如何工作的。 我的项目的目标是(在 Delphi 中)构建一个 Windows 工具来对一个 IPA 文件进行代码签名(之前通过 XCode 使用“不要代码签名”编译)。
可以肯定的是,只有在 Windows 上才能对 IPA 文件进行代码签名;就像 Adobe 对 AIR/Flash CS5 所做的一样。此外,Epic Games, Inc. 使用第三方工具构建了 UDK(虚幻开发工具包)以对 IPA 文件进行代码签名。
最后一个是用 C#/.NET 编写的,所以我试图探索源代码以了解代码签名过程是如何工作的,但是,哇,代码相当进化,即使 C#/.NET 之间有显着的相似之处。 NET 和 Delphi,我很快就迷糊了……
UDK 的 iPhonePackager 非常接近我想做的事情(功能较少)。
根据我的研究:证书和 key 可以通过 OpenSSL 在命令行中“生成”; Apple 使用 X509 证书对二进制文件进行代码签名(?); Bouncy CaSTLe Crypto API 等组件可用于管理证书。
有关 Apple 代码签名过程的有趣文章:http://developer.apple.com/library/mac/#technotes/tn2206/_index.html
我还必须生成“CodeResources”;来自 Mobile Provisioning 文件的“embedded.mobileprovision”;和“CodeSignature/CodeResources”,所有文件的层次结构如下:
<key>MainWindow.nib</key>
<data>GTBfZPINlJlD7HXjMRAKgfAztXU=</data>
如果你读到这里,你肯定会头疼:)
所以,下面是一些可以开始的问题......
是否可以对已经编译并使用“不要代码签名”签名的二进制文件重新签名?
你觉得我的项目真的很辛苦吗...?
你认为我聘请开发人员会更好吗?我可以为这个项目制定预算,但理想情况下我当然想自己做...:D
非常感谢您的意见和/或建议。
贝尼
最佳答案
我已经编写了一个工具来更新移动设备并在 Windows 上退出 IPA,可以找到该工具及其 C# 源代码(根据 LGPL 许可)here .
关于ios - 仅使用 Windows 对 IPA 文件进行代码签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934013/