我在互联网上找到了这个项目:https://github.com/x2on/OpenSSL-for-iPhone。
它有一个演示应用程序,可以计算MD5值并从编辑框中输入文本。在演示应用程序中,我可以进入OpenSSL代码,该代码计算MD5值。
我正在使用XCode 4.3.2。我有一个也使用OpenSSL的项目。在项目中,SSL握手出现问题(此代码在OpenSSL中执行)。
虽然我使用来自" x2on"的构建脚本构建了库(libcrypto.a和libssl.a)。并将这些库添加到我的项目中,我无法从我自己的项目中调用OpenSSL方法。
当我将设置与我自己的应用进行比较时,我无法发现演示应用中存在的任何相关设置(来自" x2on")。如果我尝试进入OpenSSL调用,那么执行只会转到下一行(我没有进入.asm代码,也没有进入OpenSSL代码)。此外,如果我使用鼠标右键并选择"跳转到定义"它将我带到OpenSSL头文件而不是实现(.c)。
有人可以在这里给出一些提示吗?怎么"踩到"应该一般工作?库(.a)是否包含对源代码位置的引用?在哪里可以在XCode中设置源代码的搜索路径?如何强制执行XCode将重新索引代码,包括OpenSSL代码,并使"跳转到定义"工作?
感谢任何帮助,因为我发现了更多正在或正在努力解决这个问题的人。
此外: 我创建了一个小测试应用程序,将libcrypto.a和libssl.a添加到Frameworks文件夹中,并将OpenSSL头文件的路径包含到Build Settings中。标题搜索路径。步入一段OpenSSL代码/方法没问题... 但是,当我将相同的策略应用于我的庞大项目时,它会跳过OpenSSL调用而不是进入OpenSSL调用...我听说每个项目应该只引用一次静态库?如果项目多次引用静态库,那么这是否会破坏该功能以进入该库的代码......?
忘记添加:对于小型测试应用程序,无需指示OpenSSL源文件的位置。所以我的初步结论是.a libs包含对OpenSSL源文件的引用(XCode怎么可能知道源文件的位置?)。
分享更多信息:在我的庞大项目和测试应用程序中,通过选择"跳转到定义"来跳转到源代码是不可能的。所以踏入代码和"跳转到定义"似乎/无关。