在将可可荚(在本例中为CocoaLumberjack
)集成到iOS应用程序和自己的框架中时,我遇到了问题。
Podfile
看起来如下所示:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, "8.0"
target "CommonModule" do
use_frameworks!
# CocoaLumberjack wasn't officially released with Swift support yet
# pod 'CocoaLumberjack'
pod 'CocoaLumberjack', :git => 'git@github.com:CocoaLumberjack/CocoaLumberjack.git', :commit => '6882fb5f03696247e394e8e75551c0fa8a035328'
xcodeproj 'CommonModule/CommonModule.xcodeproj'
end
我有一个模块层次(动态框架),如下所示:
CommonModule
ModelsModule
(有一个依赖项CommonModule
)最后,主要应用程序:
MySwiftApp
( ModelsModule
和CommonModule
的依赖性)现在,CocoaLumberjack
在CommonModule
中的几个文件中使用,并按预期工作。但是,每当我在import CommonModule
中的任何文件中执行ModelsModule
时,都会得到以下编译错误:
~/Developer/ModelsModule/ModelsModule/SomeFile.swift:2:8: error: missing required module 'CocoaLumberjack'
import CommonModule
^
知道如何解决这个问题吗?
发布于 2015-05-13 19:19:34
您还需要确保CommonModule.framework
和CocoaLumberjack.framework
(以及任何其他框架)都列在应用程序目标的嵌入式二进制文件部分中。
所有新的iOS 8风格的动态框架都必须嵌入到您的应用程序中--即使是那些您没有直接使用但依赖于您的应用程序的框架--所以您最终可能会看到对您不认识的项的引用。
顺便说一句,如果您在与Swift的一个名为CleanroomLogger的新的基于Swift的日志引擎交互中遇到困难,那么一个名为CleanroomLogger的新的基于Swift的日志引擎可能会使事情变得更简单。
发布于 2015-04-15 17:23:09
我假设CommonModule是快速的,并且您也使用CocoaPods 0.36,因为我看到您正在调用use_frameworks!
。我还假设您使用的是Obj版本的CocoaLumberjack,并试图与Swift一起使用它。这个use_frameworks!
标志告诉CocoaPods生成用于在Xcode项目中链接的豆荚框架。所以你需要说的是你在班上的第一名
import CocoaLumberjack
而不是使用Swift桥接头
这是cocoapods.org上的博客文章,他们在那里谈论如何为新的use_frameworks!
标志编写一个pod。向下滚动到部件通用标头陷阱
也可能是您的podspec创建了一个依赖关系来使用CocoaLumberjack,并且在链接到您的项目CocoaLumberjack和CommonModules时,但是公共模块并没有在库中正确地引用它。为了克服这个问题,您需要在将其导入目标-C库时将其作为框架引用。
#import <CocoaLumberjack/CocoaLumberjack.h>
https://stackoverflow.com/questions/29633691
复制相似问题