在Xcode 6中未创建Swift-Objective-C标头


242

我最近一直在努力将Swift添加到现有项目中,以便以实际的方式进行尝试。

在将Swift源文件添加到项目中后,我对获取“桥接头”(即Objective-C到Swift)没有任何问题。

但是*-Swift.h应该在任何地方都找不到头文件,该头文件公开了Swift类(已标记)@objc或ObjC类的子类:

在我的主要应用程序代码(仍然是Objective-C)中,我看不到任何有关如何完成用Swift编写的新子类的用法的具体说明。

我是首席开发人员的应用程序具有相当大的代码库(70.000行),因此一劳永逸地进行过渡是不可能的。


5
是的,它确实。这实际上是在问您需要在XCode IDE中的什么地方创建这个Swift-> ObjC标题,因为在向现有的ObjC项目添加Swift代码时,“默认情况下”不会发生这种情况。
David Kristensen 2014年

5
@Popeye我不同意。在这种情况下,如果您正在编辑文件并从命令行进行编译,则不会看到此问题。有争议的是代表您执行(或应该执行)的IDE。这很可能与项目设置有关,该项目肯定是IDE功能
gaige 2014年

11
@Popeye来自文档(PDF)将Swift代码导入Objective-C时,您依赖于Xcode生成的头文件将这些文件公开给Objective-C。(我的粗体字是Apple的斜体。)显然,这是有关Xcode功能的问题,该功能可帮助您一起使用Swift和Objective-C,并且这三个标记肯定合适。
Caleb 2014年

3
我确实在gaige和文档的帮助下解决了它。而且我不只是扔掉标签:在这种情况下,头文件应该由XCode创建并可见。事实并非如此,因此会产生错误。
David Kristensen 2014年

3
@Popeye没什么错的-我直接从第46页复制了报价。您发现了类似但不同的段落,或多或少地讲同一件事。
Caleb 2014年

Answers:


165

现在可以了。

  1. 项目必须具有包含空格的产品模块名称。
  2. 必须在“包装”下的“构建设置中将“ 定义模块”设置为“ ”。

终于可以了。感谢大家的帮助:-)


64
Build Settings下面Packaging,我Defines Module设置为Yes我创造了一个Product Module Name不带空格。XCode 6不会生成“ * -Swift.h”。
Loozie 2014年

25
另一个注意事项:我首先尝试在目标级别设置提到的属性,但是它不起作用,没有生成文件“ * -Swift.h”。当我在项目级别设置它时,它就起作用了。
Marcin 2014年

22
我也有同样的问题。我已经为project和target Defines Module设置了Yes一个值Product Module Name,并且没有空格,但已定义了一个值,但是我似乎无法生成此文件。
Craig Otis 2014年

8
以防万一其他人像我一样困惑...我不得不在这里盲目运气,只是导入标头,因为它不会自动完成。
shawnwall 2014年

14
您不能仅在实现中对头文件(.h)导入-swift。
zirinisp 2014年

122

我遇到了类似的问题,发现您只能添加

#import "ProductModuleName-Swift.h"

到obj-c .m文件,而不是要找到伞头的.h文件


2
这是正确的,并且...如果我需要在objc标头中使用Swift类怎么办?我尝试使用前向声明,它也不起作用。
Ixx

2
糟糕,抱歉,向前宣告行得通。我忘了加一个分号:P
Ixx

14
对于未来的搜索者:在标头中,通过在.h文件顶部执行@class YourSwiftClass来进行前向声明(而不是导入伞状标头)
rogueleaderr 2015年

4
如果我需要在头文件中使用Swift枚举怎么办?
jakecraige 2015年

1
此外,如果任何头文件中都包含“ #import ProductModuleName-Swift.h”,则根本不会生成ProductModuleName-Swift.h文件(自Xcode 7.2起),因此,如果该文件已被删除(例如,通过清理构建)文件夹),那么您在导入文件的任何地方都会看到错误消息,即使是.m文件也是如此,这增加了混乱。
rene 2015年

59

我发现我必须修复所有构建错误,然后才能生成文件。

对我来说,问题在于这是一个鸡/蛋问题,因为在我实际注释掉该#import语句之前,我没有看到任何构建错误:

//#import "ProductModuleName-Swift.h"

在我的Swift代码中发现了许多其他错误。

一旦修复了这些新错误并成功构建了源代码,我便取消了#import和宾果游戏的注释!标头已创建并正确导入:)


谢谢,这正是阻止我前进的原因。修复了快速构建错误后,我就很好了。(Xcode版本6.1.1)
Rick Roberts

10
这是在Xcode中启用“出错后继续构建”设置的好点和充分理由。
Kendall Helmstetter Gelner

这也正是我的情况:迅速的源代码中的相同更改后,缺少-Swift-h发生了
Giorgio Calzolato 2015年

3
看到 鸡肉/鸡蛋问题后,我意识到了我的问题,比喻很好
d0ye

这个问题总是回到我身边(Xcode10),我只是将Xcode解释为越野车。不过,这就是答案
SumakuTension

44

如果您像我一样,则可能是标题名称错误。ash了一下头之后,我在DerivedData中查找了文件,并确定它已经足够了。在我的设置中(我相信使用标准的派生数据文件夹):

cd ~/Library/Developer/Xcode/DerivedData
find * -iname '*Swift.h'

会找到它的。如果该文件夹中没有任何匹配项,则Xcode不会生成它。

我正在使用Xcode版本6.2(6C86e)


这为我做到了。我一直在想,自动填充功能可以自动识别,因为我以为它不存在。在目录中看到清除了一切。
2015年

有时眼见为实。在遵循建议的答案之前,我无法正常工作,然后使用这些步骤来查找生成的标头,令我惊讶的是,标头后缀了该标头,-Swift.h而不是我的实际Swift文件的名称。谢谢!
Josh Habdas

谢谢!我节省了大量的时间
estemendoza

43

如果您的项目模块名称中包含空格,则必须用下划线替换空格。

例如,如果您的项目名称是“我的项目”,则可以使用:

#import“ My_Project-Swift.h”


12
如果您的项目模块名称中带有连字符,则也应将它们替换为下划线。因此,如果您的项目名称是“ My-Project”,请使用#import“ My_Project.h”
Jeff Ames

6
另外,如果您的项目模块名称以数字开头,则也应使用下划线代替。“第一工程”将是“_st_Project-Swift.h”
Danation

31

*唯一重要的是:*

在目标中使用定义的“产品模块名称”,然后使用-Swift.h

#import <Product Module Name>-Swift.h

// in each ObjectiveC .m file having to use swift classes
// no matter in which swift files these classes sit.

无论“定义模块”参数设置为“是”还是“否”,或者是否未设置“产品模块名称”项目。

提醒:Swift类必须从NSObject派生或使用@objc属性标记,才能暴露给ObjectiveC / Foundation || 可可 ...


1
没错:在项目或目标中无需“定义模块”
Giorgio Calzolato 2015年

25

我想补充一个可能会引起问题的原因-我正在创建一个混合了Swift和Objective-C代码的框架。我无法将Swift类导入框架之外-我检查了-Swift.h文件,该文件正在生成,但为空。

问题原来非常非常简单-我没有公开任何Swift类!一旦将public关键字添加到类中,就可以在框架内部和外部的类中使用它们。

还要注意的是,在框架内部(仅在.m文件中作为另一个答案提及),我必须将-Swift.h文件导入为:

#import <FrameworkName/FrameworkName-Swift.h>

2
在Framework中,我还注意到,为了使用Swift类,应该从NSObject继承它们(即使@objc也无济于事),并且所有方法/属性都应该是公共的。
dmitrynikolaev

3
至少在当前的XCode 7预发行版中,除非您从NSObject继承,否则它们将在生成的swift标头中不可用。
dmitrynikolaev 2015年

100%不能解决我的问题。每种解决方案都是“公开授课”。我做到了 期。它仍然没有显示使用该框架的项目中的Swift类。
datWooWoo

@lespommes,您应该写一个问题,并在出现问题的地方建立一个示例项目,有人可以弄清楚发生了什么...我只是将我的答案作为一种可能的解决方案,因为这是我最常犯的知名度错误经常。
肯德尔·赫尔姆斯特·吉尔纳

2
哦,是的,您的导入提示最终对我成功了!非常感谢!
endowzoner '16

14

我有同样的问题。似乎您必须添加第一个Swift文件之前调整设置(定义模块和产品模块名称)。

如果之后再执行此操作,即使您添加其他Swift文件或删除Swift文件并创建一个新文件,也不会为该项目生成“ * -Swift.h”文件。


我不确定这是真的。在创建了许多swift文件之后直到很久以后,我才决定启用“定义模块”,并且我可以正常使用-Swift.h。
迈克尔·彼得森

实际上,我难过报告,这正是我:(这个问题我不得不删除我的.swift并重新添加它,然后所有的工作。
东西MC

2
怎么办?我正在同时更改Swift和ObjC代码。我的Project-Swift.h没有更新。我什至试图删除头文件。
Suhail Bhat 2014年

2
我不得不把这个写起来,dev.iachieved.it/iachievedit/?p=980。在添加Swift文件之前更新构建设置的技巧对我来说很关键。
2014年

这是否意味着如果我不这样做,就必须重新创建项目并重新添加所有内容?无论我做什么,似乎都无法生成* -Swift.h文件。
kgreenek

13

请允许我分享尝试在旧objc项目中使用Swift的经验。我不必设置Defines moduleYES

就我而言,我需要手动确保有一个objc桥接头。我的构建设置中仅包含生成的接口头名称。

缺少桥接头

这导致生成MyApp-Swift.h文件,但没有任何Swift类的痕迹。

Apple文档说,添加第一个swift文件时,系统将提示您创建桥接标头。好吧,我不是。我手动添加了一个MyApp-Bridging-header.h文件,并在“ Objective-C桥接标题”字段中指向它。这使MyApp-Swift.h文件填充了我的Swift类。

文档:将Swift导入Objective-C


是的,无论出于何种原因,我的ObjC Swift.h文件仅在将空桥接头文件添加到项目后才使用Swift类头文件生成!
安德鲁

同样在这里。在添加空的Objective-C桥接头文件之前,我的Swift代码没有导入到生成的* -Swift.h文件中。
Nik

12

这是未生成的moduleName-Swift.h的另一个变体。

我决定将IOS Charts包括在我的项目中,但不想在同一目录中混合源代码,因此我将Charts Project文件夹放置在代码的项目文件夹旁边。我将Charts项目拖到项目的导航器栏中,并将框架包含在常规项目设置的项目目标的Embedded Binaries列表中,并在Build Options部分的我的项目的Build Settings选项卡中将Embedded Content Contains Swift Code开关设置为yes 。

我的项目的moduleName-Swift.h文件将永远不会生成,无论此处建议使用什么其他开关或设置。最后,使用Lou Z查找-Swift.h文件的方法,我看到在我的项目的Charts.framework / Headers /目录中,在我的项目的xcode Build目录的深处生成了一个Charts-Swift.h文件。

使用Daniel Gindi的ios-charts Swift软件包而不在项目的源目录中包含代码的解决方案是添加:

#import "Charts/Charts-Swift.h"

到绘制我的项目数据图表的模块。


是否可以在IOS图表中更改/自定义工具提示?如果是,那么您可以举一个例子吗?
阿米特·乔汉

12

文件名始终以目标名开头。它被称为产品名称,但实际上是目标名称。因此,如果您希望它为新目标构建,请准备好that_target-Swift.h文件。

解决这个问题的一种方法是

  1. 为每个目标添加一个预处理器,该预处理器是目标本身的名称(不带空格)。例如 MY_TARGET=1。将其添加到每个目标的“项目设置”->“构建设置”->“预处理器宏”中。
  2. 如果您使用的是PCH文件,

将这些行添加到PCH文件中

#if MY_TARGET==1
#include "My_Target-Swift.h"
#elif THAT_TARGET==1
#include "That_Target-Swift.h" 
#endif

使用PCH文件的优点是您不必在所有位置都包含标头。

  1. 如果您不使用PCH文件,只需将这些相同的行添加到单个标头中,并在需要使用swift类的任何地方包含该标头。

这应该很好。


我真的很喜欢使用这种解决方案,而不是直接将标头导入您的源中。我有一个复杂的项目结构,其中相同的源代码被多个目标/项目使用。这样可以避免在我的代码中添加混乱的#if #else语句。感谢你的回答!
瑞安

这挽救了我的一天。我将5行代码放在“ Something-Swift-Headers.h”文件中(带有文件include)。然后,从需要的位置导入该新文件。我倾向于不要将其放在PCH或任何.h文件中,以避免循环依赖,并在.m文件中使用便捷标题。
ctietze

在很多层面上这都是错误的。首先,.pch不鼓励使用文件。其次,文件名包含产品名称,而不包含目标名称。可能是相同的巧合,但它使用了产品名称!
Iulian Onofrei

10

如果Xcode实际上是在生成-Swift.h标头(深入DerivedData内),但未引用Swift类,请确保您还定义了桥接标头。我阅读文档所隐含的方式只需要从Swift调用Objective-C,但是从Objective-C调用Swift也似乎是必需的。

看到我的答案:https : //stackoverflow.com/a/27972946/337392

编辑:这是由于公共访问权限与内部访问修饰符的缘故,正如我最终在Apple文档中发现的那样:

默认情况下,生成的标头包含使用public修饰符标记的Swift声明的接口。如果您的应用程序目标具有Objective-C桥接标头,则它还包含标有内部修饰符的标头。


是的,这确实有所帮助。我不知道 我认为,这只是Swift用例中的Obj-C所需要的。
nodepond

乐于帮助。我已经编辑了答案,因为从那以后我就找到了这种行为的原因。
梯队2015年

7

其次,这里有很多人,但是增加了相关的屏幕快照。Swift和Obj-C代码当然可以一起生活。这不是一个全有或全无的游戏。

要访问Objective-C中的Swift文件,您需要做的就是将此调用添加到Obj-C文件中(在.m /实现文件中):

#import "{product_module_name}-Swift.h"

(其中{product_module_name}代表项目的产品模块名称)。无需尝试猜测您的产品模块名称或找出带有空格和特殊字符的特殊情况,只需转到项目中的“构建设置”选项卡,然后键入“产品模块名称”,检查员就会向您展示您的产品。我的是我没想到的事情。如果您感到困惑,请查看此屏幕截图。

在此处输入图片说明

为了使Obj-c代码在Swift中工作,您只需要添加一个桥接头文件并在其中导入相关的Obj-C头即可。


1
不是#import吗?
Iulian Onofrei

假设我的项目名称为ABC,那么“ ABC-Swift.h”必须存在于我的项目中,对吗?我找不到 是否需要手动创建它?我不会自己创建任何swift文件,而只是包含以swift编写的可可豆荚。
nr5

桥头(在您的情况下为ABC-Swift.h)不会自动创建。当您尝试在Obj-C项目中创建第一个Swift文件时,Xcode通常会提示您添加一个。您也可以自己创建一个桥接报如下所示(为“桥接报”控制+ F):developer.apple.com/library/content/documentation/Swift/...
布莱恩Sachetta

5

最重要的是,该文件不可见!!!至少它在Xcode6 beta5中。您的工作空间中将没有名为“ YourModule-Swift.h”的文件。只需确保您具有模块名称并将模块设置为yes,然后在Objective-C类中使用它即可。


5

好的,这是您真正需要的所有东西!

1.删​​除所有已添加的swift文件,并编译代码,没有任何错误。

----------

在此处输入图片说明

----------

2.转到“项目”构建设置,然后设置产品模块名称。项目必须具有不包含空格的产品模块名称。

----------

在此处输入图片说明

----------

3.必须在项目中的“包装”下的“构建设置”中将“定义模块”设置为“是”,而不要定位!

----------

在此处输入图片说明

----------

4.现在在文件-> newFile->中创建一个快速文件或视图控制器

----------

在此处输入图片说明

----------

它将要求创建一个桥接头,让它成为一个。如果拒绝一次,则必须手动添加-Bridging-Header.h

5,在控制器中添加@objc,以告诉编译器有一些swift文件,需要将其公开给ObjectiveC

----------

在此处输入图片说明

----------

6.构建项目,然后在任何ObjectiveC控制器中导入#import“ -Swift.h”,它将起作用!您可以在命令上单击以查看实际文件!

----------

在此处输入图片说明

----------

希望这可以帮助!


>>您可以在Command上单击以查看实际文件!这很酷
Jagan

4

这个答案解决了用例,您可能已经有了一些调用Swift类的Objective-C代码,然后您开始收到此错误。

如何解决问题

以下步骤最终为我解决了所有问题。我在上面读到有人提到“鸡和鸡蛋”,正是这个概念使我开始执行此程序。这一明确的过程表明,必须删除引用Swift类的所有Objective-C代码,直到生成标头之后。

  1. 在您的Objective-C实现文件中注释掉#import“ ProductModuleName-Swift.h”语句
  2. 注释掉Objective-C实现文件中对Swift类的任何引用
  3. 清洁与建造
  4. 解决所有错误/警告
  5. 删除对#import“ ProductModuleName-Swift.h”语句的注释
  6. 清理并构建(成功或修复所有剩余的错误,请确保您此时未在Objective-C中引用任何Swift类。如果这样,请暂时将其注释掉)
  7. 验证通过Cmd单击 “ #import“ ProductModuleName-Swift.h”语句的类名生成的“ ProductModuleName-Swift.h”
  8. 在Objective-C实现文件中删除引用Swift类的代码的注释。
  9. 正常进行清理和构建(应生成“ ProductModuleName-Swift.h”,并且可以正常使用引用Swift类的Objective-C代码)

Nota Bene:执行此过程时,上面给出的有关将空格更改为下划线并将“ Defines Module”更改为YES的答案在执行此过程时仍然适用,Apple文档中指定的规则也是如此。

桥接头路径

在一个错误中,在生成过程中找不到文件ProductModuleName-Bridging-Header.h。这个事实产生了一个错误

<未知>:0:错误:桥接头'/Users/Shared/Working/abc/abc-Bridging-Header.h'不存在

仔细检查该错误表明该文件永远不会存在于描述的位置,因为它实际上位于(错误的路径

'/Users/Shared/Working/abc/abc/abc-Bridging-Header.h'。快速搜索目标/项目构建设置以手动进行更正,并且再次自动生成abc-Swift.h文件。

构建设置


1
如果您的项目如此之大,以至于无法注释掉目标c中所有对swift代码的引用,该怎么办?
安德鲁·莫里斯

3

您必须在Objective-C类中导入标头,即:

#import “ProductModuleName-Swift.h”

它是自动生成的,在引用上显示为“目标中的任何Swift文件将在包含此import语句的Objective-C .m文件中可见”。


24
但是,当我这样做时,出现构建错误,AppName-Swift.h不存在。而AppName-Bridging-Header.h确实存在。
David Kristensen 2014年

5
@DavidKristensen:您得到解决方案了吗,因为我遇到了同样的问题
BaSha 2014年

2

没有在项目中创建实际文件([ProductModuleName] -Swift.h)。Cmd +单击导入可即时(在内存中)生成它,以便您可以查看链接的完成方式,或在某些Xcode缓存目录中的某个位置打开文件,但不在项目目录中。

您需要将“ 定义模块”项目道具(在目标的“构建设置”中)设置为“ 是”并且如果您的模块名称包含空格或破折号-在[ProductModuleName] -Swift.h文件的所有导入中使用_。

您可以将其导入所有使用swift类型的.h和.m文件中,也可以将其导入.pch中。

因此,如果我的模块(项目)被命名为“测试项目”,我将这样导入它到我项目的.pch文件中(就在那):

#import "Test_Project-Swift.h"

2

对于使用“。”的任何人,请注意。那里的项目名称。Xcode将替换“。” Swift版本的桥接头文件带有下划线“ _”。奇怪的是,生成的Bridging-Header.h不会用下划线替换句点。

例如,名称为My.Project的项目将具有以下Bridging Header文件名。

Bridging-Header.h(自动生成)

我的项目桥接头文件

斯威夫特

My_Project.h

我希望这对使用过一段时间并像我一样被困住的人有所帮助。可以在以下位置找到此文件。

Macintosh HD /用户/ 用户 /库 /Xcode/DerivedData/My.Project-fntdulwpbhbbzdbyrkhanemcrfil/Build/Intermediates/My.Project.build/Debug-iphonesimulator/My.Project.build/DerivedSources

照顾自己,

乔恩


2

项目必须具有不包含空格的模块名称。必须在“包装”下的“构建设置”中将“定义模块”设置为“是”。注释掉了#import语句:

如果仍然在导入“ ProductModuleName-Swift.h”时出错,则

//#import“ ProductModuleName-Swift.h”

在我的Swift代码中发现了许多其他错误。

一旦修复了这些新错误并成功构建了源代码,我便取消了#import和bingo的注释!标头已创建并正确导入:)


我的问题是我的Swift代码中也有错误,但直到取消对-Swift.h文件的注释后才知道。谢谢!
威尔

1

我发现了一个对我始终有效的技巧。

  1. 在appDelegate.h文件和ProductName-Prefix.pch文件中创建#import“ ProductModuleName-Swift.h”。如果您在xcode 6中没有它,则可以通过这种方式创建它:为什么在Xcode 6中不自动创建ProjectName-Prefix.pch?
  2. 如果您收到有关“ ProductModuleName-Swift.h”的错误,请使用Command + Shift + k清除代码,将其从appDelegate.h文件中删除。
  3. 再次清理您的代码。现在一切都会像魅力一样运作
  4. 如果再次收到有关“ ProductModuleName-Swift.h”的错误,请现在在appDelegate.h文件中再次创建并再次清洁代码。

每次收到此错误以使其静音时,都要执行此工作(从appDelegate.h文件中删除并创建“ ProductModuleName-Swift.h”并清除代码)。


1

我找到了这个解决方案

  • 创建SwiftBridge.h
  • 把#import“ ProductModuleName-Swift.h”
  • 将此.h文件设为公开(重要)选择文件->在“显示文件检查器”(右栏)中->将其设为公开

现在你可以

#import "SwiftBridge.h"

而不是ProductModuleName-Swift.h

这是一种解决方法,对于Xcode的下一版本,我认为此问题将得到解决。祝好运


不起作用 刚刚尝试过。该行在#import “ProductModuleName-Swift.h”SwiftBridge.h文件而不是原始的Objective-C代码文件中仅出现错误。
Supertecnoboff 2015年

1

我很难确定模块名称/ objective-c对swift标题的导入。我也确实在这里阅读了很多文章。

但是,您的项目名称的最终答案及其所有包含的特殊字符(“。”或数字或空格)-您可以在目标的“构建设置”下的“ 产品模块名称 ”中找到适合您的文本。

例如,我的目标名称以数字“ 1mg”开头,上面提到的字段显示“ _mg”作为我的模块名称。

因此我使用了#import“ _mg-Swift.h”,并且有效。

目标构建设置中的“产品模块名称”给出了适用于您项目的正确模块名称


如果您可以编辑屏幕快照的链接,那么我可以编辑您的答案以为您显示。
SuperBiasedMan 2015年

1

就我而言,我必须将部署目标至少设置为“ OS X 10.9”,并且-Swift.h标题是自动生成的。请记住,当您更改部署目标版本时,尤其是当您拥有较旧且非常庞大的Objective C代码库时,会收到很多弃用警告。在我们的案例中,我们在XIB文件和视图类中还有很多工作要做。


2
对于其他用户-在目标的“构建设置”中查找确切名称“ MyProject-Swift.h”,这就是您需要在相应的Objc文件中将其包括为“ #include“ MyProject-Swift.h”。答案确实对我有所帮助-致力于转换一些较旧的ObjectiveC开源软件
David H

0

如果您以前能够构建项目,而没有与“ProductModuleName-Swift.h” not found错误相关的问题,现在又又遇到了这些讨厌的错误,则原因可能出在您最近的更改中。

对我来说,这是由于(偶然)不正确的.swift文件编码。还原更改并手动返回,即可完成工作。


0

这一点可能很明显(也许太明显了),但是您必须在项目中至少有一个swift文件才能生成标题。如果您要编写样板代码或配置代码,但打算稍后再写,则导入将无法进行。


0

我不得不从我的Objective C项目中删除WatchOS2 swift代码。并且只有在此之后,XCode才提供生成-Swift.h的权限。


0

我有类似的问题,但是我的项目之前已经编译过,在更改了几个文件代码后突然出现错误。我花了一段时间才弄清楚为什么我的myproject-swift.h文件出现“找不到文件”错误。我所做的代码更改有一些错误。Xcode并没有指出这些错误,而是始终显示“找不到文件错误”。然后得到了以前版本代码的副本,然后我与新代码进行了比较,并逐一合并了文件。每个文件合并后,编译项目以查找错误。因此,最重要的是,如果您的代码中有错误,Xcode可能只显示myproject-swift.h文件的“找不到文件错误”。很可能您的项目中有编译错误。清除这些错误,它将起作用。


0

如果您正在使用Cocoapods之类的东西(并在工作空间而不是项目中工作),请尝试在打开工作空间并构建之前打开项目并构建它。YMMV。


0

有时您只需要取消设置,然后再次在obj-c .m文件上设置目标成员资格。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.