我有一个使用PoDoFo进行数字签名的项目,因此我尝试将CTOpenSSLWrapper集成到一个使用PoDoFo和OpenSSL库的项目中。但是当我尝试构建它时,我遇到链接问题:
如果我尝试在设备上运行,则会向ld: symbol(s) not found for architecture armv7
重复相同的错误。
我已经交叉检查过每件事:
但我仍有同样的问题。
我该如何解决这个问题?
答案 0 :(得分:0)
我已经交叉检查过每件事:
1. header search paths 2. library search paths 3. Buildphases->compile sources for any missing .m files
您似乎不包括库(仅提供库搜索路径)。
这是典型的库包含对我而言的样子。它适用于OpenSSL,但同样适用于PoDoFo。在下面的示例中,为iOS构建的OpenSSL位于/usr/local/ssl/ios
。标题位于/usr/local/ssl/ios/include/openssl
,图书馆位于/usr/local/ssl/ios/lib
。
<强>路径强>:
<强>库强>:
如果在添加库后仍然存在链接器错误,请执行以下操作以确保库具有您需要的体系结构。我使用OpenSSL作为示例,您应该使用PoDoFo库的名称。
xcrun -sdk iphoneos lipo -info libcrypto.a
您应该看到类似的内容:
Architectures in the fat file: libcrypto.a are: armv7 armv7s arm64 i386
如果您需要为iOS构建的OpenSSL,请尝试使用此GitHub:noloader/openssl-1.0.1h-ios。它是一个胖库,拥有iOS可能需要的所有架构。