尝试使用迦太基合并静态框架

jso*_*rge 7 xcode dylib static-linking ios carthage

  • carthage version:0.25.0
  • xcodebuild -version:8.3.3
  • 你在用--no-build吗?没有
  • 你在用--no-use-binaries吗?没有
  • 你在用--use-submodules吗?没有
  • 你在用--cache-builds吗?没有

Cartfile github "rs/SDWebImage" github "AgileBits/onepassword-extension" github "hsousa/HCSStarRatingView" github "sugoi-wada/facebook-ios-sdk" "780a72cd6086c57939d83a7143462ae13dfb9a74" github "CSStickyHeaderFlowLayout/CSStickyHeaderFlowLayout" github "card-io/card.io-iOS-source"

我可以使用构建脚本构建我的依赖项,如此处的文档中所述.现在我正在尝试将我的静态框架合并到一个动态框架中并遇到问题.

首先,我将一个框架添加到dylib目标,我已经禁用了bitcode并添加了以下内容OTHER_LDFLAGS:-all_load, -ObjC.我从小开始HCSStarRatingView.它已添加到他们的dylib目标和构建.

为了测试这个新的组合框架,我添加了一个app目标.我可以导入框架目标,应用程序目标可以识别它.但是,当我尝试声明一个新视图时,let view = HCSStarRatingView(frame: .zero)我收到以下错误:Use of unresolved identifier 'HCSStarRatingView'.

我假设我没有HCSStarRatingView直接导入,因为它现在是我的框架目标的一部分.我还假设我不必向动态框架目标的伞头添加任何内容来暴露内部链接的静态框架.这些假设是否正确?知道我在这里可能缺少什么吗?

sch*_*iii 0

我认为你的假设可能是错误的。
我有一个类似的设置,并通过导入动态框架和它所依赖的静态库来使其工作。例如:

 import framework-target
 import HCSStarRatingView
Run Code Online (Sandbox Code Playgroud)

此外,我必须确保应用程序目标包含迦太基构建路径