【发布时间】: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 并重新安装/重新更新了它们
- 使用
pod --deintegrate删除了它们 - 使用答案中描述的方法手动删除它们:How to remove CocoaPods from a project?
- 使用
- 在将生成的 pods-framework 标记为
Optional和一次标记为Required之后进行构建 - 删除
@import语句后构建,然后重建项目(在得到所有可爱的“找不到文件”错误之后) - 手动将(由 Cocoapods 生成的)AirshipKit 框架添加到项目中
免责声明:以上所有“我尝试过的事情”都是通过反复清理项目和构建文件夹、重新启动 Xcode 和每次错误后喝咖啡来完成的
笑话不谈;我可能尝试了一堆我不记得的其他东西。但是 Xcode 拒绝“找到”AirshipKit 模块。
有谁知道可能是什么问题?
【问题讨论】:
-
每个主要的 Xcode 版本,我们的 pod 规范似乎都有一些问题。我们在内部对其进行了测试,并且能够将其用于内部项目,因此我们非常确定它适用于所有人。但是,我们从未使用过抽象目标。您可以尝试将
use_frameworks!添加到抽象目标吗? -
试过 @ralepinski ,但遗憾的是它没有用
标签: xcode cocoapods urbanairship.com