使用 CarPlay 框架的 CarPlay 应用程序在 iOS 13 或更旧版本上崩溃

CarPlay app using CarPlay framework crashes on iOS 13 or older version

我正在开发一个适用于 iOS 14 和 ios 13 的 CarPlay 音频应用程序。

我按照此处的指南使用 iOS 13 的 Media Player 框架和 iOS 14 或更高版本的 CarPlay 框架。 https://developer.apple.com/documentation/carplay/supporting_previous_versions_of_ios?language=objc

它在 iOS 14 上运行良好,但在 iOS 13/12 上崩溃

dyld: Symbol not found: OBJC_CLASS$_CPNowPlayingAddToLibraryButton

我发现使用以下 类 会导致应用程序崩溃。

CPNowPlayingAddToLibraryButton
CPNowPlayingRepeatButton
CPNowPlayingShuffleButton
CPNowPlayingImageButton

仅添加 类 之一会导致 运行 以前版本的 iOS 崩溃。

CPNowPlayingAddToLibraryButton* addToButton = [CPNowPlayingAddToLibraryButton.alloc initWithHandler:^(CPNowPlayingAddToLibraryButton*)
{
    ...
}];

您需要 link CarPlay 框架。在目标的构建阶段中,转到 Link Binary With Libraries 部分并检查 CarPlay 是否已经存在(如果没有则添加它)。然后确保状态设置为可选