首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dyld未找到AVAssetDownladTask

dyld未找到AVAssetDownladTask
EN

Stack Overflow用户
提问于 2017-03-24 21:04:54
回答 3查看 2.8K关注 0票数 13

试图添加离线HLS (一个新的ios 10功能)到一个应用程序。为了让这个应用仍然在ios 9上运行,而没有离线的HLS功能,我正在尝试以下内容。在ios10上可以很好地工作,也可以为ios9编译。

代码语言:javascript
复制
    @available(iOS 10.0, *)
    @objc class DownloadManager: NSObject, AVAssetDownloadDelegate {
           //Do stuff with downloading assets
      }

然而,当我在ios 9设备上实际运行这个程序时,应用程序会立即崩溃,其中包含以下消息:

dyld:符号未找到:从: /var/mobile/Containers/Bundle/Application/7062C410-C4F5-4270-9F1E-22750E99F799/wod.app/wod引用的_OBJC_CLASS_$_AVAssetDownloadTask在/var/mobile/Containers/Bundle/Application/7062C410-C4F5-4270-9F1E-22750E99F799/wod.app/wod中预期为: /System/Library/Frameworks/AVFoundation.framework/AVFoundation

我已经将与此相关的所有代码都限制在DownloadManager类中,所以我不知道下一步该做什么。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-27 18:11:27

我想通了。我不得不弱链接AVFoundation。在苹果的网站上找到的。

https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html

弱连接到整个框架 当您在另一个框架中引用符号时,这些符号中的大多数都与您的代码有很强的链接。为了创建到符号的弱链接,包含符号的框架必须显式地向其添加weak_import属性(参见标记符号以表示弱链接)。但是,如果您不维护框架并且需要弱链接其符号,则可以显式地告诉编译器将所有符号标记为弱链接。要做到这一点,您必须用Xcode打开项目并修改目标链接到框架的方式,如下所示: 选择要修改的目标,并显示其构建阶段。用库构建阶段扩展链接二进制以查看目标当前链接的框架。如果您希望弱链接到的框架在构建阶段中列出,请选择它,然后选择Edit > Delete来删除它。现在,您可以告诉链接器对该框架使用弱链接。 选择目标,打开其信息窗口,然后单击Build。在另一个Linker设置中,添加以下命令行选项规范,其中是要弱链接到的框架的名称:-weak_framework构建您的产品。

票数 12
EN

Stack Overflow用户

发布于 2019-11-07 15:08:21

我也有同样的问题,我弱链接了下面的AVFoundation框架。

在生成设置中的“其他链接器标志”中添加-weak_framework AVfoundation

票数 5
EN

Stack Overflow用户

发布于 2020-05-26 13:22:17

下图显示了如何弱链接框架:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43009124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档