gpt4 book ai didi

ios - iOS 设备上的 OpenSSL 压缩

转载 作者:行者123 更新时间:2023-11-29 12:49:22 25 4
gpt4 key购买 nike

我在我的 ios 项目中使用 openssl,所以我使用来自 github 的构建脚本构建了一个静态库:https://github.com/x2on/OpenSSL-for-iPhone .我在我的 xcode 项目中包含了 libcrypto.a 和 libssl.a,并且可以成功使用所有 openssl 函数。现在我想用 openssl 支持压缩。问题:创建的库似乎不支持任何压缩方法(SSL_COMP_get_compression_methods() 为空)。

所以我添加了 zlib-dynamic 属性:

./Configure iphoneos-cross --openssldir="${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk" zlib-dynamic

我将 libz.dylib 添加到链接部分:

http://oi60.tinypic.com/2ljlqmb.jpg

现在压缩在模拟器中有效,但在设备上无效。据我所知,动态库在 iOS 上是不允许的。然而 libz.dylib 是一个系统库。 openssl 能否在设备上使用集成的 zlib?如果没有,是否可以在 iOS 设备上使用带压缩的 openssl?

最佳答案

你是对的,iOS 已经包含了 libz.dylib。因此,您应该能够链接到它:

  • 在“Build Phases”中删除您添加的libz.dylib
  • 在“Build Settings”中找到名为“Other Linker Flags”的设置并添加-lz
  • 请注意,zlib.h 也可作为 iOS SDK 的一部分使用,因此无需另外安装。

这应该允许为模拟器和设备构建您的应用。

编辑

以上没有解决问题。实际问题是由zlib-dynamic OpenSSL Configure引起的。使用此选项,OpenSSL 会尝试在运行时加载 libz.so(但未能成功,因为它在 iOS 上名为 libz.dylib)。这很容易通过用 zlib 替换 zlib-dynamic 并重新构建 OpenSSL 来解决。如果使用新构建的库导致链接器错误,请检查答案的第一部分。

关于ios - iOS 设备上的 OpenSSL 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795862/

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