我正在尝试创建一个依赖于第三方静态库(而不是容器)的私有容器。我所做的一切都没有成功通过pod lib lint
。我搜寻了数小时的stackoverflow,几乎尝试了所有方法,因此在解释目前为止的尝试时,请原谅数据转储。
我用spec.vendored_libraries = "thirdparty.a
尝试了显而易见的方法,但是当运行lint时,我的规范失败并显示以下错误:
ld: library not found for -lthirdparty
在pod目标的xcconfig文件中,我可以看到我的库搜索路径已自动正确设置:
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../NativoSDK-iOS/ThirdParty/Libraries"
三重检查,这是正确的路径,但仍然没有运气。经过一番研究,我发现我看到的所有其他静态库都以“ lib”为前缀,因此我将其重命名为“ libthirdparty.a”,并更新了我的podspec:spec.vendored_libraries = "libthirdparty.a
这样做确实有所帮助(我认为)。在我的OTHER_LDFLAGS
中,可以看到-l"thirdparty"
。但是现在我收到一个新错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ThirdPartyRenderingSettings", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
"_OBJC_CLASS_$_ThirdPartyPictureInPictureProxy", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
"_OBJC_CLASS_$_ThirdPartyAdsRequest", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
"_OBJC_CLASS_$_ThirdPartyAVPlayerVideoDisplay", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
"_OBJC_CLASS_$_ThirdPartyAdDisplayContainer", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
"_OBJC_CLASS_$_ThirdPartyAdsLoader", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
"_OBJC_CLASS_$_ThirdPartySettings", referenced from:
objc-class-ref in NtvVideoVastPlayerView.o
ld: symbol(s) not found for architecture x86_64
我已经使用libthirdparty.a
检查了lipo
中包含的体系结构,并且看到它确实包含x86_64。
lipo -info libthirdparty.a
Architectures in the fat file: libthirdparty.a are: armv7 armv7s i386 x86_64 arm64
这就是我现在所在的位置。我已经尝试过pod lib lint --use-libraries
,但没有执行任何操作。我尝试使用spec.pod_target_xcconfig
的所有组合来修改构建设置。我已经待了好几天了,但我尝试过的任何方法都没有奏效。我不知道为什么我的吊舱无法正确链接到该静态库。感谢您的帮助。