在Xcode

时间:2016-10-11 03:54:09

标签: ios swift xcode cocoapods podfile

我遇到了Xcode(使用Swift)的问题,让我完全陷入困境。我意识到这个问题已被提出并回答,但没有一个答案对我有用,我的情况似乎与其他人有点不同,因为我的所有pod都失败了(不仅仅是一个特定的)。一周前他们都工作得很好。

我将Cocoapods用于一些更常见的Swift框架(例如Alamofire,Eureka,Kingfisher,SwiftyJSON等)。它们在Xcode 7中都运行良好。然而,其中一个(自动)更新增加了我的Xcode版本,之后必须在podfile中指定你的目标。我做了这个并运行pod安装。 pod仍然存在,但现在每个与这些框架相关的import语句都失败了。

起初我认为这是一个Alamofire问题,因为这是第一个失败的“没有这样的模块'Alamofire'”错误。我尝试了Alamofire的一切,包括以下内容:

  • 清理并重建
  • 清理构建文件夹
  • 重启Xcode
  • 重新启动计算机
  • 删除所有派生数据
  • 为“链接的框架和库”添加了框架
  • 添加了“将二进制文件链接到库”
  • 的框架
  • 已验证我正在打开工作区而不是项目
  • 重新安装CocoaPods
  • 重新安装Xcode ver 7.3.1

什么都不会删除“没有这样的模块...”错误。最后,我从舱中删除了Alamofire,并将Alamofire项目拖入了我的项目。这允许我删除Alamofire的import语句。但令我沮丧的是,现在下一个框架导致“没有这样的模块”。我将接下来的三个框架移动到我的项目中,看起来它只会继续下去。显然,我的Pods框架都没有被识别出来了。我安装了Xcode 8并尝试使用Swift 2.3,但我得到了相同的“没有这样的模块”错误。

我真的更喜欢使用Cocoapods,因为它使得升级更容易,还有其他奖励。我猜我有一些设置错误,搞砸了我的所有豆荚,但没有找到任何运气。这是一场灾难,因为它已经关闭了几天的开发,没有任何修复的迹象。如果有什么我可以做或提供帮助找到解决方案,请告诉我。如果有人可以提供任何可能的解决方案甚至可以尝试的东西,我们将不胜感激。我目前正在使用Xcode版本7.3.1。

我的pod文件看起来像这样:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'Y2GOsp' do
    use_frameworks!

    # Pods for Y2GOsp
    pod 'Alamofire', '~> 3.0'
    pod 'AlecrimCoreData', '~> 4.0'
    pod 'Kingfisher', '~> 2.4'
    pod 'Eureka', '~> 1.6'
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
    pod 'PhoneNumberKit', '~> 0.1'
    pod 'PKHUD'
    pod 'Dollar'
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '2.2'
        end
    end
end

6 个答案:

答案 0 :(得分:20)

来自@ l'L'l的评论让我得到了解决方案。我去了

build settings > frameworks search path

并将其设置为以下内容:

$(inherited) (non-recursive)
$(PROJECT_DIR)/build/Debug-iphoneos (non-recursive)
$(SRCROOT) (recursive)

现在可以正确找到pod框架。

答案 1 :(得分:4)

确保您在Xcode中打开了.xcworkspace文件,而不仅仅是.xcodeproj文件。

答案 2 :(得分:1)

尝试将SDK的版本变为早期版本

pod 'Alamofire', '~> 3.0'
pod 'AlecrimCoreData', '~> 4.0'
pod 'Kingfisher', '~> 2.4'
pod 'Eureka', '~> 1.6'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
pod 'PhoneNumberKit', '~> 0.1'
pod 'PKHUD'
pod 'Dollar'

例如将3.0更改为可用的先前版本,当我面临同样的问题时,它对我有用。

pod 'Alamofire', '~> 2.4' #I am assuming prev available version is 2.4

但它不一定是“No such Module”中的“Alamofire”版本结果,您可以尝试在pod文件中列表中的每一个。

答案 3 :(得分:1)

在Pod文件中

取消注释以下行以定义项目的全局平台

平台:ios,'10 .0'

<强> use_frameworks!

现在使用xcode

a)清理您的项目

b)确保所有“Pods”&gt; “构建设置”&gt; “仅构建活动架构”设置为“NO”

c)现在,构建项目

答案 4 :(得分:0)

有时候pod deintegrate然后pod install也对我有帮助

答案 5 :(得分:0)

我遇到了同样的问题,只是通过确保选中“查找隐式依赖项”来解决了这个问题。转到编辑方案->构建。以前,我取消选中此复选框,这样我的xCode就会运行得更快。从未意识到以后会抛出此错误。