【问题标题】:Generating an iOS library with xcode 8使用 xcode 8 生成 iOS 库
【发布时间】:2016-11-11 17:15:09
【问题描述】:

我想创建一个 iOS 库以导入多个项目。 我尝试遵循多个(很多!)教程和指南,并在这里回答但没有解决我的问题。

我使用的是 xcode 8.1 (macOS sierra),创建库的步骤如下:

  • new->project->cocoa touch 静态库
  • 将我所有的源代码添加到项目中

任务已经完成:

  • 我已将“仅构建活动架构”标志切换为否
  • 我已添加到“其他链接标志”-static -objC

现在按下 cmd+B 选择模拟器作为目标

转到产品->选择 .a->在查找器中显示

库显示切片是: 'fat 文件中的架构:./libPhoneNumber.a 是:i386 x86_64'

以下步骤显示了我如何使用该库: - 将 .a 拖到现有项目中 - 将库的所有.h拖到现有项目中 - 添加了#import "libPhoneNumber.h"(文件存在)

使用模拟器作为目标点击 cmd+B 我总是获得以下内容:

架构 x86_64 的未定义符号: “_OBJC_CLASS_$_MYPhoneNumberUtil”,引用自: AppDelegate.o 中的 objc-class-ref ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

所以,现在显然 x86_64 切片存在了。

我快疯了,似乎每个指南都不起作用。 还有什么想法吗?

谢谢大家

【问题讨论】:

  • 您的目标的构建设置中有库的路径吗? (图书馆搜索路径)
  • 我的搜索路径没问题。谢谢。我发现如果项目是使用 new->project->cocoa touch 静态库生成的,则该库可以工作,但是如果我创建另一种类型的项目并添加静态库目标,则该目标将不会生成有效的库。知道为什么吗?

标签: ios static-libraries linker-errors xcode8 ios10


【解决方案1】:

深入研究我发现,如果项目是使用 new->project->cocoa touch 静态库生成的,则该库可以工作,但是如果我创建另一种类型的项目并添加静态库目标,则该目标将没有生成有效的库。

【讨论】:

    猜你喜欢
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多