Xcode 8中的“没有这样的模块”错误

问题描述 投票:1回答:2

我在Swift项目中的Xcode 8.2.1中得到了“No such module”编译错误。我使用Carthage有两个模块:Alamofire和Fuzi。 Carthage/Build/iOS目录与两个框架文件一起存在。 Build Settings/Framework Search Paths指向该目录。我在General/Embedded Binaries中嵌入了两个框架文件。我错过了什么?

ios swift xcode8 carthage
2个回答
2
投票

你不应该需要嵌入库;它们应添加到“常规/嵌入式二进制文件”部分下的链接框架和库中。确保将Carthage复制框架脚本添加到Build Phases中。

从迦太基文件:

在应用程序目标的“常规”设置选项卡的“链接的框架和库”部分中,将要使用的每个框架从磁盘上的Carthage / Build文件夹拖放。在应用程序目标的“构建阶段”设置选项卡上,单击“+”图标并选择“新建运行脚本阶段”。创建一个运行脚本,在其中指定shell(例如:bin / sh),将以下内容添加到shell下面的脚本区域:

/usr/local/bin/carthage copy-frameworks

并在“输入文件”下添加要使用的框架的路径,例如:

$(SRCROOT)/Carthage/Build/iOS/Box.framework
$(SRCROOT)/Carthage/Build/iOS/Result.framework
$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework

此脚本解决由通用二进制文件触发的App Store提交错误,并确保在归档时复制必要的bitcode相关文件和dSYM。


0
投票

首先,检查迦太基是否安装在您的机器中,如终端中的以下命令

迦太基版

如果您的机器中未安装carthage,请尝试以下操作。

Download the latest release of Carthage,双击Carthage.pkg运行安装程序。单击“继续”,选择要安装到的位置,然后再次单击“继续”,最后单击“安装”。然后你可以查看carthage版本。

如果您正在使用现有项目,请转到项目文件夹,如

cd~ / Path / To / Starter / Project

请尝试以下命令以获取更新cartfile

carthage update -platform iOS

安装/更新完成后,请尝试以下命令

打开迦太基

您应该看到弹出的Finder窗口包含两个目录:Build和Checkouts。在Carthage Finder窗口中,导航到Build \ iOS。现在,将Alamofire.framework(例如)拖到Xcode中的Linked Frameworks and Libraries部分:

接下来,切换到Build Phases并添加一个新的Run Script构建阶段。添加以下命令:

/usr/local/bin/carthage copy-frameworks

单击输入文件下的+,为每个框架添加一个条目:

$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
© www.soinside.com 2019 - 2024. All rights reserved.