gpt4 book ai didi

objective-c - 模块 'myFramework' 的伞形 header 不包括 header 'otherFramework.h'

转载 作者:IT老高 更新时间:2023-10-28 11:38:23 25 4
gpt4 key购买 nike

我的 Swift/iOS9 框架“viewer_protocol”使用另一个外部 Objective-C 框架 (CocoaAsyncSocket)。我正在使用 Carthage 构建 CocoaAsyncSocket。到目前为止一切正常:在我的框架 Xcode 项目中有一个示例应用程序,使用我的框架没有任何问题。

现在我想在不同的 Xcode 项目中使用我的框架 - 尽管使用 Carthage。我只包含我的框架作为依赖项,Carthage 自动将依赖项解析为 CocoaAsyncSocket。我将这两个框架都嵌入了这个新的 Xcode 项目并构建了我的应用程序:这里一切正常 - 除了一个我无法摆脱的警告:

/Users/John/Repositories/my_project/<module-includes>:1:1: 
Umbrella header for module 'my_project' does not include header 'GCDAsyncSocket.h'

这是我的框架标题:

#import <UIKit/UIKit.h>

//! Project version number for my_project.
FOUNDATION_EXPORT double my_projectVersionNumber;

//! Project version string for my_project.
FOUNDATION_EXPORT const unsigned char my_projectVersionString[];

// In this header, you should import all the public headers of your framework
using statements like #import <my_project/PublicHeader.h>
#import <CocoaAsyncSocket/CocoaAsyncSocket.h>

如您所见,CocoaAsyncSocket.h 已导入。此外,在我的框架内,包含了 CocoaAsyncSocket.h 文件:

my framework's folder

我在这里缺少什么?我在我的框架中使用了其他几个外部框架,它们没有任何警告 - 所有这些外部框架都是用 Swift 编写的 - CocoaAsyncSocket 是纯 Objective-C。

这是我的框架 module.modulemap:

 framework module my_project {
umbrella header "my_project.h"

export *
module * { export * }
}

module viewer_protocol.Swift {
header "my_project-Swift.h"
}

更新

我找到了解决方案:从

更改我的框架标题中的导入语句
#import <CocoaAsyncSocket/CocoaAsyncSocket.h>

#import "CocoaAsyncSocket/CocoaAsyncSocket.h"

现在 Xcode 找到了头文件,警告消失了。

最佳答案

我最近遇到了同样的问题。显然我在目标成员中将头文件设置为 public ,但它没有在伞头中公开。通过使用 project 访问而不是 public 来修复问题。

关于objective-c - 模块 'myFramework' 的伞形 header 不包括 header 'otherFramework.h',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32923483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com