相关疑难解决方法(0)

没有找到目标的伞头

堆栈溢出有答案,但没有一个对我有用.

这是一个Swift 2.0项目,我正在使用Xcode 7.2.1

重现问题的步骤

  1. 创建单视图项目
  2. 转到Project Navigator中的Targets
  3. 添加一个名为Common的框架模块
  4. 添加另一个名为Logger的框架模块

你会看到一个警告.

Warning: no umbrella header found for target 'Logger', module map will not be generated

请指教

测试项目链接 - > https://www.dropbox.com/s/cvgjls70ielnriy/Test.zip?dl=0

xcode ios swift

4
推荐指数
1
解决办法
4161
查看次数

更新到 Xcode 10.2、Swift 5 后找不到“NBPhoneNumberDesc.h”文件

我正在使用 pod chronotruck/FlagPhoneNumber我刚刚更新为High Sierra/Xcode 10.1/Swift 4.2/Cocoapoods v-1.5.3to Mojave 10.14.15/Xcode 10.2.1/Swift 5/Cocoapoods v-1.7.3,但无法构建,因为在NBRegExMatcher.m文件内我收到错误

找不到“NBPhoneNumberDesc.h”文件

在此输入图像描述

升级之前一切正常,我从未遇到过任何此类错误。

Podfile.lock 里面有这个:

- FlagPhoneNumber (0.7.6):
- FlagPhoneNumber/libPhoneNumberiOS (= 0.7.6)
- FlagPhoneNumber/libPhoneNumberiOS (0.7.6)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,该 pod 中的其他几个文件也使用该#import "NBPhoneNumberDesc.h"模块,但它们都工作正常并且没有任何错误

在此输入图像描述

我尝试了这个答案,但 NBPhoneNumberDesc.h 已经在公共部分:

在此输入图像描述

我还尝试了这个答案来设置 SWIFT_OBJC_INTERFACE_HEADER_NAME 以匹配我的项目的桥接标头,但没有任何结果

在文件内NBRegExMatcher.m(发生错误的地方)我注释掉#import NBPhoneNumberDesc.h以查看会发生什么,然后 NBPhoneNumberUtil.h 得到相同的错误:

在此输入图像描述

我注意到它libPhoneNumber-iOS捆绑在FlagPhoneNumber吊舱内,它的版本是libPhoneNumberiOS (0.7.6). 然后,我手动将 pod 添加到我的项目中,看看会发生什么,但这也没有什么区别,错误仍然存​​在。我唯一注意到的是,当我手动添加 Pod 时,Podfile.lock 版本是- libPhoneNumber-iOS (0.9.15)其中,而 FlagPhoneNumber 正在使用的版本是libPhoneNumberiOS (0.7.6) …

module header-files ios cocoapods swift

4
推荐指数
1
解决办法
1589
查看次数

更改框架的目标名称或产品名称时未找到伞头

我有这个代码库,我决定变成一个框架,以便在我未来的应用程序中重用.

所以我继续为Cocoa Touch Framework创建了一个Xcode项目.

为了让事情变得简单(和工作区出来的画面,至少直到我掌握框架的基础知识),我创建了一个"试验床"的iOS应用程序,嵌入/链接的框架/取决于作为一个额外的目标,以相同项目(不是一个单独的项目).当然,这个想法是使用这个应用程序来测试我的框架功能,因为我添加或修改它们.

所以我的项目有两个目标:

  • MyFramework
  • MyTestApp

......当然还有两个方案(每个方案一个):

我也在修改代码,以便它可以在iOS和macOS上运行.警告:找不到目标"MyFramework(macOS)"的伞头,将不会生成模块图.

到现在为止还挺好.

此外,我还修改了代码,以便它可以在iOS和macOS上运行.

所以我又增加了两个目标:

  • MyFrameworkMac
  • MyTestMacApp

... aslo设置,以便应用程序目标 - 依赖,链接和嵌入框架.

还好.

接下来,我决定做一些清理并重新整理文件,以便在文件数量开始进一步增长之前保持整洁和有意义.

然后,麻烦开始了.

经过一些反复试验,我发现了一些事情:

1)如果我更改iOS Framework的目标名称并尝试构建iOS应用程序,我会收到以下警告:

/ Users/Me/Projects/MyFramework/Code/MyFramework /:1:1:模块'MyFramework'的Umbrella标题不包含标题'PublicHeaderXX.h'

...对于我的主标题中包含的每个公共标题:

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

    #import <MyFramework/PublicHeader01.h>
    #import <MyFramework/PublicHeader02.h>
    #import <MyFramework/PublicHeader03.h>
    ...
Run Code Online (Sandbox Code Playgroud)

2)如果我在Build Settings中更改iOS框架的产品名称,则会收到错误消息:

词法或预处理器问题| 找不到'MyFramework/MyFramework.h'文件

...指向我在应用源代码中导入它的位置:

    #import <MyFramework/MyFramework.h>
Run Code Online (Sandbox Code Playgroud)

对于Mac框架目标,我可以更改目标名称,但如果我更改产品名称,我会收到警告:

警告:找不到目标"MyFrameworkMacRenamed"的伞头,将不会生成模块图

所以我问......

有没有办法为每个框架目标设置我想要的目标名称和产品名称?

我肯定必须有一些东西我应该"修改以匹配"并消除一些差异,但我是框架的新手,无法弄明白......(无论如何,什么是"伞头"?)

xcode cocoa frameworks objective-c ios

2
推荐指数
1
解决办法
2945
查看次数

标签 统计

ios ×3

swift ×2

xcode ×2

cocoa ×1

cocoapods ×1

frameworks ×1

header-files ×1

module ×1

objective-c ×1