CocoaPods将静态库添加为对podspec的依赖项

问题描述 投票:0回答:1

我正在尝试创建一个依赖于第三方静态库(而不是容器)的私有容器。我所做的一切都没有成功通过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的所有组合来修改构建设置。我已经待了好几天了,但我尝试过的任何方法都没有奏效。我不知道为什么我的吊舱无法正确链接到该静态库。感谢您的帮助。

ios xcode cocoapods static-libraries
1个回答
0
投票

相同的问题,U知道了吗?

© www.soinside.com 2019 - 2024. All rights reserved.