【问题标题】:How to update a framework in an iOS app?如何更新 iOS 应用程序中的框架?
【发布时间】:2011-07-07 18:40:47
【问题描述】:

我正在使用 Nuance 的 SpeechKit 框架编写应用程序。我刚刚下载了更新版本的框架,其中包含一些类中的新方法。为了升级,我删除了框架并重新添加了新框架。当我在 Xcode 中右键单击框架并单击“在 finder 中显示”时,它会显示新框架。当我在 Xcode 中打开框架的“Headers”子文件夹时,我看到了新方法。

问题是我的类似乎仍在引用旧位置的头文件,因为新方法在我的应用程序中不可见。

如何正确升级框架? Xcode 中是否还有其他地方包含对 SDK 的路径引用?

【问题讨论】:

  • 你试过“全部清除”吗?
  • 是的 - 没有效果。甚至像往常一样 - 清理、关闭 Xcode、重新启动我的 Mac 等等。不好。
  • 擦除派生数据通常可以解决问题。

标签: ios frameworks


【解决方案1】:

您需要删除项目的派生数据 - 它是 XCode 管理器中项目选项卡上项目的一个选项。它将删除框架的缓存构建,强制 XCode 使用新的构建。

  1. 从顶部菜单中选择窗口/管理器
  2. 单击管理器窗口顶部的“项目”伪选项卡(图标看起来像 XCode 项目文件)
  3. 从左侧列表中选择项目
  4. 单击项目信息标题正下方区域中“派生数据”旁边的“删除”。
  5. 列表项

编辑:从 XCode 12 开始(应该与 Xcode 8 及更高版本一起使用),您可以像这样删除派生数据:

如果您在工作区环境中,请转至 File > Workspace Settings,或在常规项目环境中转至 File > Project Settings

然后点击 Derived data 部分下的灰色小箭头并选择您的项目文件夹以在 Finder 中将其删除。

【讨论】:

  • 这听起来很有希望,但你能告诉我具体如何到达你所指的任何地方吗?当我打开 Organizer 窗口时,我没有看到用于删除构建工件的任何选项。
  • 更新了我的答案。它被称为派生数据,对不起;我整天都在 Team City,所以一切对我来说都是构建神器:)
  • 我使用的是 Xcode 3.2.5 - 当我单击 PROJECTS & SOURCES 伪选项卡下的 Appname.xcodeproj 项目时,我在右窗格中什么也看不到。
  • 很抱歉,感谢您继续提供帮助(我以前没有见过聊天功能)。我最终开始了一个新项目并导入了我的代码文件。在添加 SpeechKit 框架和其他几个不在 Nuance 的“这里是您需要的所有其他框架”列表中的框架之后,我能够看到新方法。我仍然很好奇为了将项目指向正确的头文件,我必须在 Xcode 中做什么。不过,我已经完全习惯了 Xcode 的这种事情。
  • 我刚才遇到了这个问题(虽然是不同的框架),最终唯一有效的方法是从我的磁盘中删除旧版本的所有实例。我不知道它链接到哪个版本,但它肯定不是我的源文件夹中的那个,也不是链接说明页面中提到的那个。一旦我删除了其他文件,它就可以编译并且检测到文件正常。 HTH。
【解决方案2】:

我找到了导致我们这个问题的原因。

当您构建新版本时,您必须更新“当前库版本”。 还有一个“兼容版”

在 Xcode 选择器中您的框架目标和构建设置中搜索链接,您将在那里设置此设置。

我们创建了一个构建脚本来在每次构建时增加这个版本号。

Xcode 缓存框架并尽可能使用缓存。这就是为什么您需要更改此号码。

【讨论】:

  • 你有没有机会分享构建脚本?
  • 在这上面浪费了 2 个小时后,你的答案正是我需要的。
【解决方案3】:

如果您使用的是 CocoaPods,请运行 pod update [PODNAME]

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多