使用 CarPlay 框架的 CarPlay 应用在 iOS 13 或更早版本上崩溃
Posted
技术标签:
【中文标题】使用 CarPlay 框架的 CarPlay 应用在 iOS 13 或更早版本上崩溃【英文标题】:CarPlay app using CarPlay framework crashes on iOS 13 or older version 【发布时间】:2021-10-20 23:47:52 【问题描述】:我正在开发一款适用于 ios 14 和 ios 13 的 CarPlay 音频应用。
我按照此处的指南使用适用于 iOS 13 的媒体播放器框架和适用于 iOS 14 或更高版本的 CarPlay 框架。 https://developer.apple.com/documentation/carplay/supporting_previous_versions_of_ios?language=objc
它在 iOS 14 上运行良好,但在 iOS 13/12 上崩溃
dyld:未找到符号:OBJC_CLASS$_CPNowPlayingAddToLibraryButton
我发现使用以下类会导致应用崩溃。
CPNowPlayingAddToLibraryButton CPNowPlayingRepeatButton CPNowPlayingShuffleButton CPNowPlayingImageButton
在运行早期版本的 iOS 时,仅添加其中一个类会导致崩溃。
CPNowPlayingAddToLibraryButton* addToButton = [CPNowPlayingAddToLibraryButton.alloc initWithHandler:^(CPNowPlayingAddToLibraryButton*)
...
];
【问题讨论】:
【参考方案1】:您需要弱链接 CarPlay 框架。在目标的构建阶段中,转到 Link Binary With Libraries 部分并检查 CarPlay 是否已经存在(如果没有则添加)。然后确保状态设置为可选
【讨论】:
以上是关于使用 CarPlay 框架的 CarPlay 应用在 iOS 13 或更早版本上崩溃的主要内容,如果未能解决你的问题,请参考以下文章
使用 CPNowPlaying ImageButton 时,CarPlay 正在播放屏幕在深色外观上显示错误图像
从 Xcode 12 CarPlay 模拟器启动时,CarPlay 停车应用程序崩溃
CarPlay:从 Spotify 等移动设备的后台杀死应用程序时,如何从 CarPlay 装置关闭应用程序?