【问题标题】:Xcode 8 is unable to find the AirshipKit module using CocoapodsXcode 8 无法使用 Cocoapods 找到 AirshipKit 模块
【发布时间】:2016-09-14 10:22:58
【问题描述】:

我正在尝试使用 Cocoapods 将 Urban Airship 集成到我的项目中。 “应该”很简单的事情,却让我无休止地沮丧。

为什么?

因为 Xcode 无法找到 AirshipKit 模块;给我“Module 'AirshipKit` not found”错误。正在使用与 Cocoapods 配合使用的 Xcode 7.3,但在更新到 Xcode 8 后,我无法构建我的项目。


让我给出错误发生的上下文:

我使用的Podfile如下:

################
# Configuration
################

workspace 'MyWorkspace.xcworkspace'
project 'MainProject.xcodeproj'
project 'submodules/SubProject.xcodeproj'

install! 'cocoapods', :deterministic_uuids => false

# Uncomment this line to define a global platform for your project
 platform :ios, '8.0'

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
            config.build_settings['SDKROOT'] = 'iphoneos'
            config.build_settings['ENABLE_BITCODE'] = 'NO'
        end
    end
end

################
# Pods
################

abstract_target 'Shared' do
  # Pods shared between both the Main and Sub targets
  pod 'UrbanAirship-iOS-SDK'
  pod 'TBXML', :inhibit_warnings => true

  # Pods for the Main Project
  target 'MainProject' do
    use_frameworks!
    project 'MainProject.xcodeproj', 'a_dev_server' => :debug, 'a_release_server' => :release, 'a_appstore_server' => :release

  end


  # Pods for the Sub Project
  target 'SubProject' do
    use_frameworks!
    project 'submodules/SubProject.xcodeproj', 'a_dev_server' => :debug, 'a_release_server' => :release, 'a_appstore_server' => :release

    pod 'Google/Analytics'
  end

end

我有一个“主”项目,它使用我自己的框架,漂亮地称为“子”。
至于豆荚;我已将所有 pod 更新为最新版本。这意味着UrbanAirship-iOS-SDK-pod 当前的版本为8.0.0。 Urban Airship 本身声明该版本应与 Xcode 8 兼容。
在我的文件中,我导入了模块(使用@import AirshipKit;),但这给了我未找到的错误。


我尝试过的事情:

  • 删除我的 DerivedData 文件夹中的 ModuleCache
  • 删除 DerivedData 文件夹
  • 删除了 pod 并重新安装/重新更新了它们
  • 在将生成的 pods-framework 标记为Optional 和一次标记为Required 之后进行构建
  • 删除@import 语句后构建,然后重建项目(在得到所有可爱的“找不到文件”错误之后)
  • 手动将(由 Cocoapods 生成的)AirshipKit 框架添加到项目中

免责声明:以上所有“我尝试过的事情”都是通过反复清理项目和构建文件夹、重新启动 Xcode 和每次错误后喝咖啡来完成的

笑话不谈;我可能尝试了一堆我不记得的其他东西。但是 Xcode 拒绝“找到”AirshipKit 模块。

有谁知道可能是什么问题?

【问题讨论】:

  • 每个主要的 Xcode 版本,我们的 pod 规范似乎都有一些问题。我们在内部对其进行了测试,并且能够将其用于内部项目,因此我们非常确定它适用于所有人。但是,我们从未使用过抽象目标。您可以尝试将use_frameworks! 添加到抽象目标吗?
  • 试过 @ralepinski ,但遗憾的是它没有用

标签: xcode cocoapods urbanairship.com


【解决方案1】:

虽然这并不完全是一个“答案”,但我现在可以使用它了。

我采取的步骤是:

  1. 卸载 pod(再次)
  2. 已安装所有 pod,不包括 UA pod
  3. 手动添加 AirshipKit 框架(如 UA 网站所述)
  4. 成功构建我的项目
    • 我还必须将项目提交到我的源代码控制 (Git)。我不知道为什么,但 Xcode8 似乎抱怨丢失文件以及任何问题除非你提交它们。
  5. 重新安装了 UA pod
  6. 再次;成功构建我的项目
    • 是的,你是对的 Sherlock,此时我的项目中有两个 AirshipKit 框架。我的猜测是我的项目成功构建了,因为 @import 看到了手动添加的 AirshipKit
  7. 移除了手动添加的 AirshipKit

在此之后,构建我的项目就...工作了。

为什么?

“不知道。”

我又是一个快乐的开发者了吗?

“是的,我是。”

【讨论】:

  • 哇。不好玩。如果您在 pod 上遇到任何其他问题,请在此处提交问题 -github.com/urbanairship/ua-ios-pod,我们会尽力提供帮助。
  • 谢谢,我会确保这样做
猜你喜欢
  • 2023-03-04
  • 2016-05-31
  • 1970-01-01
  • 2016-06-02
  • 2014-01-14
  • 2016-03-02
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
相关资源
最近更新 更多