carplay setRootTemplate 崩溃(允许 类: (null))
carplay setRootTemplate crash (Allowed classes: (null))
我正在从旧 carplay 过渡到新 ios15 carplay。
我问了apple的carplay权限,现在有了
所以我放了一些示例代码和 运行。
密码是
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) {
CPLogger.log("in templateApplicationScene didConnect")
self.interfaceController = interfaceController
let screen = CPListTemplate(title: "CarPlay", sections: [])
self.interfaceController!.setRootTemplate(screen, animated: true, completion: { _,_ in
})
}
这个方法被击中了,所以我想我是从 info.plist
的 Application Scene Manifest
中得到的。
在那之后我遇到了崩溃,它说(在这种情况下最后一部分很重要。)
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported object <CPListTemplate: 0x600001c79b80> <identifier: 8105D933-642B-4111-80D7-C910466237F5, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to setRootTemplate:animated:completion:. Allowed classes: (null)'
大多数搜索结果都有类似 Thread 1: "Unsupported object <CPInformationTemplate: 0x6000012de010> <identifier: 3444D3F1-ECFF-4953-B543-459286E11371, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to setRootTemplate:animated:completion:. Allowed classes: {(\n CPTabBarTemplate,\n CPListTemplate,\n CPGridTemplate,\n CPAlertTemplate,\n CPVoiceControlTemplate,\n CPNowPlayingTemplate\n)}"
的消息。
Allowed classes
部分有一些信息。但不是我的。
我在权利信息中添加了正确的信息
我有一个包含 carplay-audio 选项的配置。
我只有一个结果包含 'Allowed classes: (null)' 字符串,即 https://githubmemory.com/@oguzhnatly
他说“这样的事情 Allowed 类: (null) 几乎不可能发生。通常,它必须包含 CarPlay 模板的名称。”
而且我没有有用的东西。
现在我完全迷路了...
帮帮我!
谢谢
根据 CarPlay 应用程序的类型,您可以使用不同的模板,也可以使用不同的模板。在 CarPlay Programming Guide 的 Sections 部分,您可以看到音频应用程序允许哪些模板。此外,我认为只允许列表或选项卡模板作为根模板。您要将哪个模板设置为 root?
我在切换到 M1 MBP 后开始得到这个。我尝试将哪种类型的模板设置为根模板并不重要。仍然适用于我的旧 Intel Mac,所以它似乎是一个 M1 错误。
编辑:我修好了!
在 Apple Dev Forums 转了一圈后,我发现有人遇到了同样的问题,但问题是在将 arm64
添加到 Excluded Architectures 后才出现的。
我也添加了这个来让 Google Places SDK 编译,所以删除它很棘手。但是Google已经发布了一个beta version的兼容M1的SDK,但是需要手动或者通过Carthage安装。我删除了旧的 SDK,从 EXCLUDED_ARCHS
中删除了 arm64
,安装了 beta SDK 并且它工作了!现在我可以在 M1 上毫无错误地使用 CarPlay Simulator。希望这对您有所帮助!
我正在从旧 carplay 过渡到新 ios15 carplay。
我问了apple的carplay权限,现在有了
所以我放了一些示例代码和 运行。
密码是
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) {
CPLogger.log("in templateApplicationScene didConnect")
self.interfaceController = interfaceController
let screen = CPListTemplate(title: "CarPlay", sections: [])
self.interfaceController!.setRootTemplate(screen, animated: true, completion: { _,_ in
})
}
这个方法被击中了,所以我想我是从 info.plist
的 Application Scene Manifest
中得到的。
在那之后我遇到了崩溃,它说(在这种情况下最后一部分很重要。)
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported object <CPListTemplate: 0x600001c79b80> <identifier: 8105D933-642B-4111-80D7-C910466237F5, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to setRootTemplate:animated:completion:. Allowed classes: (null)'
大多数搜索结果都有类似 Thread 1: "Unsupported object <CPInformationTemplate: 0x6000012de010> <identifier: 3444D3F1-ECFF-4953-B543-459286E11371, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to setRootTemplate:animated:completion:. Allowed classes: {(\n CPTabBarTemplate,\n CPListTemplate,\n CPGridTemplate,\n CPAlertTemplate,\n CPVoiceControlTemplate,\n CPNowPlayingTemplate\n)}"
的消息。
Allowed classes
部分有一些信息。但不是我的。
我在权利信息中添加了正确的信息
我有一个包含 carplay-audio 选项的配置。
我只有一个结果包含 'Allowed classes: (null)' 字符串,即 https://githubmemory.com/@oguzhnatly
他说“这样的事情 Allowed 类: (null) 几乎不可能发生。通常,它必须包含 CarPlay 模板的名称。”
而且我没有有用的东西。
现在我完全迷路了...
帮帮我!
谢谢
根据 CarPlay 应用程序的类型,您可以使用不同的模板,也可以使用不同的模板。在 CarPlay Programming Guide 的 Sections 部分,您可以看到音频应用程序允许哪些模板。此外,我认为只允许列表或选项卡模板作为根模板。您要将哪个模板设置为 root?
我在切换到 M1 MBP 后开始得到这个。我尝试将哪种类型的模板设置为根模板并不重要。仍然适用于我的旧 Intel Mac,所以它似乎是一个 M1 错误。
编辑:我修好了!
在 Apple Dev Forums 转了一圈后,我发现有人遇到了同样的问题,但问题是在将 arm64
添加到 Excluded Architectures 后才出现的。
我也添加了这个来让 Google Places SDK 编译,所以删除它很棘手。但是Google已经发布了一个beta version的兼容M1的SDK,但是需要手动或者通过Carthage安装。我删除了旧的 SDK,从 EXCLUDED_ARCHS
中删除了 arm64
,安装了 beta SDK 并且它工作了!现在我可以在 M1 上毫无错误地使用 CarPlay Simulator。希望这对您有所帮助!