';共享应用程序';不可用:在iOS上不可用(应用程序扩展)

';共享应用程序';不可用:在iOS上不可用(应用程序扩展),ios,objective-c,swift,xcode,cocoapods,Ios,Objective C,Swift,Xcode,Cocoapods,我正在构建一个应用程序,并在一两个月前为它开发了一个今日扩展。随机的,当我在iOS 11测试版中第10次运行它时,我第一次遇到了一个错误,现在整个应用程序都无法构建 /用户/Documents/AppName/Pods/CarbonKit/CarbonKit/CarbonTabSwipeNavigation.m:622:27: “sharedApplication”不可用:在iOS(应用程序)上不可用 扩展)-在适当的情况下使用基于视图控制器的解决方案 相反 错误出现在Pod中,但它在一个用Ob

我正在构建一个应用程序,并在一两个月前为它开发了一个今日扩展。随机的,当我在iOS 11测试版中第10次运行它时,我第一次遇到了一个错误,现在整个应用程序都无法构建

/用户/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
//一些项目使用GTM_后台_任务_获取来避免编译时引用
//对应用程序进行修改。
#如果GTM_后台_任务_获取

返回(id)[UIApplication sharedApplication] 正如错误明确指出的,以下API不可用于今天的扩展:

[UIApplication sharedApplication]
请阅读苹果公司提供的:

某些API对应用程序扩展不可用 由于其在系统中的重点角色,应用程序扩展没有资格参与某些活动。应用程序扩展无法:

  • 访问
    sharedApplication
    对象,因此无法在该对象上使用任何方法
-苹果,应用程序扩展编程指南


确保CarbonKit(或者,实际上,使用这些API的任何东西)未包含在您的Today App Extension中。Xcode应该在包含在扩展目标中后立即自动向您发出警告(尽管可以暂时关闭这些警告)。

错误明确指出,以下API不可用于今天的扩展:

[UIApplication sharedApplication]
请阅读苹果公司提供的:

某些API对应用程序扩展不可用 由于其在系统中的重点角色,应用程序扩展没有资格参与某些活动。应用程序扩展无法:

  • 访问
    sharedApplication
    对象,因此无法在该对象上使用任何方法
-苹果,应用程序扩展编程指南

确保CarbonKit(或者,实际上,使用这些API的任何东西)未包含在您的Today App Extension中。Xcode应该在它包含在扩展目标中时立即自动向您发出警告(尽管可以暂时关闭这些警告)。

这对我很有效。 转到目标生成设置,找到
仅需要AppExtension安全API
,并将值设置为
。 这将消除此错误。

这对我很有效。 转到目标生成设置,找到
仅需要AppExtension安全API
,并将值设置为

这将消除此错误。

@rmaddy为什么要删除我的swift标签?我之所以把它放在这里,是因为我的应用程序是用swift编写的,所以它与这个问题有关。你看过谷歌在这个问题上的看法吗?在第二页的结果之后,我停止了略读。@rmady我确实提到了它是用swift写的。“…是用Obj-C写的,不是Swift,所以很难理解。”@danh是的,我试过了。所有这些都与其他豆荚有关,而不是碳套件。我在阿拉莫菲尔身上找到了一些东西,但答案与我的情况完全不同。谢谢,但如果您看到的标签上写着“仅在有关语言功能的问题或需要Swift代码时使用标记”。因此,没有理由删除标记。@rmaddy为什么要删除我的Swift标记?我之所以把它放在这里,是因为我的应用程序是用swift编写的,所以它与这个问题有关。你看过谷歌在这个问题上的看法吗?在第二页的结果之后,我停止了略读。@rmady我确实提到了它是用swift写的。“…是用Obj-C写的,不是Swift,所以很难理解。”@danh是的,我试过了。所有这些都与其他豆荚有关,而不是碳套件。我在阿拉莫菲尔身上找到了一些东西,但答案与我的情况完全不同。谢谢,如果你看到上面写着“只在关于语言功能的问题上使用标签,或者需要Swift中的代码。”因此没有理由删除标签。非常感谢你的回答!carbonkit不包括在我的播客文件中的today扩展部分中。这就是为什么它这么奇怪!有什么线索吗?这些文件不包括在实用工具检查器的“目标成员资格”部分,也不包括在“链接二进制文件与库”构建阶段,或“复制捆绑资源”构建阶段?没有。奇怪的是,它出现在两个地方。一次是在carbonkit文件中,该文件不在Today扩展的podfile的目标成员资格中;另一次是在GTMSessionFetcher文件中,Firebase使用该文件,并且Firebase包含在Today扩展的podfile的目标成员资格中。还是很困惑谢谢你的回答!carbonkit不包括在我的播客文件中的today扩展部分中。这就是为什么它这么奇怪!有什么线索吗?这些文件不包括在实用工具检查器的“目标成员资格”部分,也不包括在“链接二进制文件与库”构建阶段,或“复制捆绑资源”构建阶段?没有。奇怪的是,它出现在两个地方。一次是在carbonkit文件中,该文件不在Today扩展的podfile的目标成员资格中;另一次是在GTMSessionFetcher文件中,Firebase使用该文件,并且Firebase包含在Today扩展的podfile的目标成员资格中。还是很困惑