【问题标题】:Use of OpenSSL with XCode 7.3在 XCode 7.3 中使用 OpenSSL
【发布时间】:2016-07-10 23:08:03
【问题描述】:

我正在编写一个应该是跨平台的应用程序,所以我的想法是用 C 编写完整的底层,然后用 Objective-C 或其他合适的语言(即 Linux 的 C++)编写用户界面相关的东西。

对于该应用程序,我必须使用 OpenSSL;正如所记录的那样,Apple 放弃自 SDK 10.11 以来对该库的支持;据我所知,OpenSSL 应该在 SDK 10.10 之前可用。

现在我的问题是:我想使用 XCode 7.3 进行开发,但我希望我的应用程序也应该向后兼容相当旧的 OS X 版本;我的想法是我必须在新的 XCode 7.3 上安装旧的 SDK,然后在“构建设置”->“基础 SDK”下选择正确的 SDK。

谁能指出我如何在新 XCode 上下载和安装旧 SDK 的文档?在 Apple Developer 网站上,我发现只有旧版本的 XCode,但它会安装完整的旧版本 XCode...

感谢您的宝贵帮助。

【问题讨论】:

    标签: objective-c xcode macos openssl


    【解决方案1】:

    您应该自己构建和链接 OpenSSL,而不是使用旧的 SDK 构建。来自documentation

    如果您的应用依赖于 OpenSSL,您应该自己编译 OpenSSL 并将已知版本的 OpenSSL 静态链接到您的应用中。

    无论如何,OS X 附带的 OpenSSL 版本已经过时了。 Apple 放弃了对它的支持正是因为他们无法在不破坏向后兼容性的情况下发布新版本(OpenSSL 在不同版本之间的 API 不稳定)。

    【讨论】:

    • 好的,谢谢您的回答;也许我用了一个错误的例子;我的问题是:如何使用旧 SDK 构建以确保向后兼容性(除了 OpenSSL 库)?
    • 通常的方法是使用最新版本的 SDK 构建,但将部署目标设置为您的目标版本。如果您使用 Swift 进行开发,如果您尝试使用在最旧的目标操作系统版本上不存在的 API(不使用 #available() 进行检查),编译器会警告您。如果你使用 ObjC,编译器就不会那么聪明地警告你,不幸的是。你可以试试DeployMate 这样的工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2016-07-09
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多