我正在建立一个应用程序,并在一两个月前为它开发了今天的扩展程序。随机地运行它可能是iOS 11 Beta中的第10次,我第一次收到错误,现在整个应用程序都无法构建。
/Users/Documents/AppName/Pods/CarbonKit/CarbonKit/CarbonTabSwipeNavigation.m:622:27: ' sharedApplication'不可用:iOS上不可用(应用程序 扩展) - 适当时使用基于视图控制器的解决方案 代替。
错误出现在Pod中,但它出现在用Obj-C编写的文件中,而不是Swift中,因此很难理解。
这些是错误出现的行:
// Some projects use GTM_BACKGROUND_TASK_FETCHING to avoid compile-time references
// to UIApplication.
#if GTM_BACKGROUND_TASK_FETCHING
return (id<GTMUIApplicationProtocol>) [UIApplication sharedApplication]; <- error
#else
return nil;
#endif
有人可以提供有关如何解决此错误的建议吗?任何帮助都会非常感激。非常感谢![/ p>
干杯, 西奥
答案 0 :(得分:1)
由于错误明确指出,以下API无法在Today Extensions中使用:
[UIApplication sharedApplication]
请阅读Apple提供的documentation on App Extensions:
某些API不适用于App Extensions
由于其在系统中的重点作用,应用扩展程序没有资格参与某些活动。应用扩展程序不能:
- 访问
sharedApplication
对象,因此无法使用该对象上的任何方法- Apple,App Extension编程指南
确保
答案 1 :(得分:0)
这对我有用。
转到目标构建设置并找到Require Only AppExtension-Safe API
并将其值设置为No
。
这将使此错误消失。