gpt4 book ai didi

ios - 如何使用 XCode 6 构建 iOS 框架

转载 作者:行者123 更新时间:2023-12-02 04:57:06 25 4
gpt4 key购买 nike

我知道familiar tutorials在此基础上,XCode 6 模板框架的引入改变了游戏规则。

我已经看过WWDC 2014 video关于构建现代框架,但它更多地讨论了在单个项目中构建扩展、框架和应用程序。它没有指定我用它制作的框架是否真正可以在任何项目中重用。

我正在以 XCode 6 方式构建框架(文件->新项目->框架和库->Cocoa Touch Framework),但是当我将其导入我的测试应用程序项目(与框架项目分开)时 - 我不断收到各种信息错误。

示例:在框架内包含非模块化 header ,等等。

我知道这不是它所说的,而且我所做的任何事情都缺少一些步骤。 older tricks可能对每个人都有效,但我根本找不到在 XCode 6 之后遵循哪种方法。

例如有some folder structure框架需要,但 XCode 6 在构建它时并不遵守它。这样对吗?如果没有,我如何更改 XCode 构建框架文件夹层次结构的方式?

我是要回到旧学校还是我在 XCode 6 中搞砸了一些我无法创建可重用框架的小东西?

最佳答案

我不确定您是否正在尝试使用 Objective-C 还是 Swift 构建一个框架,因为您的问题没有说明这一点。我遇到过您在 Swift 中提到的错误,因此我将向您提供构建 Swift 框架的方法。

我发现 Objective-C 的流程非常简单并且有详细的文档,因此我将跳过此部分。

对于 Swift,有一些事情需要考虑。首先,不支持 Swift 静态库,因此在将应用程序链接到库时必须专门使用框架(也称为动态库)。

步骤如下:

  1. 使用 IOS > Framework & Library 下的 New > Project 创建框架,选择 Cocoa Touch Framework

  2. 要避免出现“ld:警告:找不到选项的目录...”,请转到目标的“build设置”中的“库搜索路径”并删除路径。

  3. 您无法将 Objective-C 与 Swift 混合使用,因此甚至不要考虑在代码中添加 Swift-Header 桥接文件。

  4. 在 swift 中,有些情况下您需要从未公开的框架导入代码。我已经成功地使用框架内的模块映射来处理这些情况。

  5. 我还在build设置中选择 CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES 来解决“在框架模块内包含非模块化 header ”的问题。这似乎有效

  6. 我确保生成的头文件被标记为公共(public)(而不是项目)。单击该文件,您将在检查器中的“目标成员资格”下看到所做的选择

构建时您可能会遇到一些奇怪的错误消息。当您的代码无法正确编译导致缺少链接器输出其二进制文件所需的文件时,Xcode 倾向于报告链接器错误。有时,XCode 不会在您正在编译的文件中显示错误,您需要手动查看构建输出并返回到文件。有时,您会遇到需要删除缓存的问题。我将这些问题称为“XCode 忧郁症”并不断处理它。我发现这种类型的问题在构建库时更常发生。其余的应该按预期工作。

关于ios - 如何使用 XCode 6 构建 iOS 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30635470/

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