gpt4 book ai didi

ios - 在 Cocoa Touch Framework 中包装静态库

转载 作者:IT王子 更新时间:2023-10-29 05:27:45 26 4
gpt4 key购买 nike

我有一个带有 2 个架构切片(armv7、arm64)的胖静态库。我试图让它与 swift 一起工作并将其包装到 Cocoa Touch Framework 中。

我的工作:

  1. 创建 Cocoa Touch Framework 项目
  2. 将 .a 带标题的静态库拖到
  3. OTHER_LDFLAGS 设置为 -all_load
  4. ONLY_ACTIVE_ARCH设置为NO
  5. VALID_ARCHSARCHS 设置为armv7arm64
  6. 使用发布构建配置构建
  7. 从 DerivedData/../../Products/中获取 .framework 文件

当我将这个 .framework 放入我的 swift 项目中,添加到我的目标常规设置中的嵌入式二进制文件部分,导入框架并使用其中一个类时,我得到了 undefined symbols for architecture arm64架构 armv7 的 undefined symbol

编辑:
不确定它是否有帮助,但我注意到静态库的大小约为 34MB,但生成的 .framework 的大小约为 12MB。

编辑 2:
我在静态库和生成的动态库上都运行了 nm -arch arm64 -g myLibraryName。动态库不包含静态库具有的所有符号。似乎 XCode 构建过程剥离了很多。

最佳答案

我想你也忘了补充:

项目->目标->构建阶段->将二进制文件与库链接:添加:libz.dyliblibz.tbd(从 Xcode 7 开始,*.dylib 文件是现在的 *.tbd 文件)

一定要清理文件夹:/User/yourname/Library/Developer/XCode/DerivedData

P.S:如果您愿意,您还应该能够在 Build Settings 中添加来自 “Other Linker Flags”libz.tbd通过添加参数 -lz。

关于ios - 在 Cocoa Touch Framework 中包装静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43340662/

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