Ios 未找到dyld AVAssetDownladTask
正在尝试将脱机HLS(ios 10的新功能)添加到应用程序。我在swift中尝试以下操作,以便该应用程序在ios 9上仍能正常运行,而无需离线HLS功能。在ios10上运行良好,也可以为ios9编译Ios 未找到dyld AVAssetDownladTask,ios,swift,ios10,http-live-streaming,avassetdownloadtask,Ios,Swift,Ios10,Http Live Streaming,Avassetdownloadtask,正在尝试将脱机HLS(ios 10的新功能)添加到应用程序。我在swift中尝试以下操作,以便该应用程序在ios 9上仍能正常运行,而无需离线HLS功能。在ios10上运行良好,也可以为ios9编译 @available(iOS 10.0, *) @objc class DownloadManager: NSObject, AVAssetDownloadDelegate { //Do stuff with downloading assets }
@available(iOS 10.0, *)
@objc class DownloadManager: NSObject, AVAssetDownloadDelegate {
//Do stuff with downloading assets
}
但是,当我在ios 9设备上实际运行此应用程序时,应用程序会立即崩溃,并显示以下消息:
dyld:未找到符号:_OBJC_CLASS_$_AVAssetDownloadTask已引用
发件人:
/var/mobile/Containers/Bundle/Application/7062C410-C4F5-4270-9F1E-22750E99F799/wod.app/wod
预计在:
/System/Library/Frameworks/AVFoundation.framework/AVFoundation in
/var/mobile/Containers/Bundle/Application/7062C410-C4F5-4270-9F1E-22750E99F799/wod.app/wod
我已经将所有与此相关的代码约束到DownloadManager类,因此我不知道下一步该怎么做。谢谢 我明白了。我不得不把薄弱的基础联系起来。在苹果的网站上找到的 弱链接到整个框架 在另一个框架中引用符号时,大多数符号 与您的代码紧密链接。为了创建到 符号,则包含该符号的框架必须显式添加 弱链接导入属性(请参见标记弱链接的符号)。 但是,如果您不维护框架,并且需要链接其 符号,您可以显式地告诉编译器标记所有 弱链接的符号。为此,必须在中打开项目 Xcode并修改目标链接到框架的方式 如下: 选择要修改的目标并显示其构建阶段。 展开链接二进制库构建阶段以查看 目标当前链接的框架。如果您需要框架 “弱链接到”列在带有库生成的链接二进制文件中 阶段,选择它,然后选择“编辑>删除”将其删除。现在你可以 告诉链接器对该框架使用弱链接 选择目标,打开其“信息”窗口,然后单击“生成”。对另一个 链接器标志生成设置,添加以下命令行选项 规范,其中是您所使用的框架的名称 要弱链接到: -弱框架构建您的产品
我有同样的问题,我弱链接的AVFoundation框架 下面是步骤
在生成设置中的“其他链接器标志”中添加-weak\u frameworkAVfoundation此图显示了如何弱链接框架:
所以解决方案是:使用可选设置将AVFoundation添加到“链接二进制文件与库”中?不,不是(或者至少不是我所做的)步骤在我发布的链接和评论中描述。