我在Swift项目中的Xcode 8.2.1中得到了“No such module”编译错误。我使用Carthage有两个模块:Alamofire和Fuzi。 Carthage/Build/iOS
目录与两个框架文件一起存在。 Build Settings/Framework Search Paths
指向该目录。我在General/Embedded Binaries
中嵌入了两个框架文件。我错过了什么?
你不应该需要嵌入库;它们应添加到“常规/嵌入式二进制文件”部分下的链接框架和库中。确保将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。
首先,检查迦太基是否安装在您的机器中,如终端中的以下命令
迦太基版
如果您的机器中未安装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