求助:带SiriKit扩展的iOS应用编译成功却无法安装(iOS11.1.2)
问题分析与解决方案
嘿,这个问题我刚好碰到过,根源确实和你怀疑的部署目标版本有关,但得说清楚具体原因和解决步骤:
没错,com.apple.intents-service 这个SiriKit扩展点的最低支持iOS版本是iOS 10.0,但你把扩展的最低部署目标设成了8.0,这就导致iOS 11.1.2的设备在安装时,检测到扩展要求的系统版本和你配置的部署目标不匹配,直接触发了“扩展点标识符不受支持”的报错。
这里要注意:Xcode编译阶段不会严格校验扩展点的版本兼容性,但iOS设备安装时会仔细检查每个扩展的extension点是否在当前系统支持范围内,同时验证扩展的部署目标是否符合该扩展点的最低要求——你的编译能过,但安装失败,就是这个原因。
给你几个具体的解决步骤:
修改扩展的最低部署目标:
- 在Xcode里选中你的SiriKit扩展目标
- 进入
Build Settings面板,找到Deployment Target选项 - 把它改成iOS 10.0或更高版本(你的设备是iOS 11.1.2,设为10.0完全没问题)
同步主应用的部署目标(可选但推荐):
虽然主应用本身理论上可以支持到iOS 8.0,但为了避免后续出现奇怪的兼容性问题,建议把主应用的最低部署目标也调整到iOS 10.0,至少要保证主应用的部署目标不低于扩展的部署目标。重新编译安装:
先清理项目(快捷键Cmd+Shift+K),然后重新编译运行到你的iPhone 7设备上,应该就能正常安装了。
另外补充个小提示:如果之后你需要兼容iOS 10以下的系统,可以通过条件编译的方式,在低版本系统中隐藏SiriKit相关功能,但扩展本身只能在iOS 10及以上系统运行,所以扩展的部署目标必须设为10.0及以上。
内容的提问来源于stack exchange,提问作者beren_00
相关产品推荐
相关产品推荐

