【问题标题】:Xcode "Missing Submodule" warningXcode“缺少子模块”警告
【发布时间】:2014-11-06 03:52:23
【问题描述】:

我正在使用 Xcode6 GM 创建一个 Coacoa Touch 框架(Xcode6 中的一个新功能),然后这个框架被包含到我的应用程序中。

一切都很好(工作正常),除了我在“#import”中收到警告。根本原因是什么?

【问题讨论】:

    标签: ios objective-c swift xcode xcode6


    【解决方案1】:

    我遇到了同样的问题并最终通过将我的项目标题添加到伞形标题中来解决它。当您创建一个新框架时,它应该从一个以项目为标题的 .h 文件开始(在您的情况下为 DirectProximityFramework.h)。

    这个文件里面有一个注释:

    在此标头中,您应该导入您的所有公共标头 框架使用像#import <DirectProximityFramework/PublicHeader.h>这样的语句

    所以只需在此文件中添加您的GeofencingHelper.h 文件:

    #import <DirectProximityFramework/GeofencingHelper.h>
    

    这应该会删除您的所有警告!

    【讨论】:

    • 嗨@Firo - 即使我正在这样做,我也会收到此警告。
    • 编辑:我的愚蠢。我没有适当地更新我导入的框架。
    • @Julian,很高兴你知道了!
    • 如果警告发生在测试目标中并且我不想公开测试所需的所有标头怎么办?
    • 要添加的一件事是确保将标头正确添加到框架目标的构建阶段中标头部分的公共、私有或项目部分。
    【解决方案2】:

    也许,您可以通过在“DirectProximityFramework.h”中添加以下行来停止此警告

    #import <DirectProximityFramework/GeofencingHelper.h>
    

    ...等

    我建议检查一下

    [定位你的框架] -> 构建阶段 -> 标头 -> 公开

    【讨论】:

      【解决方案3】:

      我遇到了这个问题,上面的所有解决方案都不适合我,因为该文件不应该在伞形标题中。

      因此,如果这是您自己的框架,并且该特定文件不应出现在总括标题中,请确保它未在目标成员部分中标记为 public

      这为我解决了问题。

      【讨论】:

        【解决方案4】:

        如果它不是您的框架并且无事可做,您可以通过这种方式禁用警告

        #pragma clang diagnostic push
        #pragma clang diagnostic ignored "-Wincomplete-umbrella"
        #import <DirectProximityFramework/GeofencingHelper.h>
        #pragma clang diagnostic pop
        

        注意 - 这不是修复,它只是隐藏问题。

        【讨论】:

          【解决方案5】:

          // 在这个头文件中,你应该使用如下语句导入框架的所有公共头文件

          #import &lt;GameworkSDK/GWObject.h&gt;

          像这样:

          #import <UIKit/UIKit.h>
          
          #import <GameworkSDK/GWObject.h>
          
          //! Project version number for GameworkSDK.
          FOUNDATION_EXPORT double GameworkSDKVersionNumber;
          
          //! Project version string for GameworkSDK.
          FOUNDATION_EXPORT const unsigned char GameworkSDKVersionString[];
          

          【讨论】:

            【解决方案6】:

            我有这个问题可可豆荚

            我的解决方案非常简单,但我花了很长时间才弄清楚。

            • 当我运行 $ pod install 时,它在与我的 .xcodeproj 文件相同的目录中为我生成了一个工作区。
            • 但是我已经创建了一个工作区作为其父目录。
            • 然后我简单地删除了我的旧工作区并使用 pod 创建的那个


            glhf!

            【讨论】:

              【解决方案7】:

              我有同样的问题,我的解决方案是..

              当您创建框架项目时。您的项目会自动创建“yourProjectName.h”文件,在此头文件中导入类类。

              就我而言,我收到了missing submodule 'MSFramework.MSLocationManager' [-Wincomplete-umbrella]this 警告。

              通过导入解决

                 #import <UIKit/UIKit.h>
                  # import "MSLocationManager.h"
              
                  //! Project version number for MSFramework.
                  FOUNDATION_EXPORT double MSFrameworkVersionNumber;
              
                  //! Project version string for MSFramework.
                  FOUNDATION_EXPORT const unsigned char MSFrameworkVersionString[];
              

              这里我只是添加了# import "MSLocationManager.h"in 头文件。

              【讨论】:

                【解决方案8】:

                在项目设置中设置标题搜索路径:

                目标/构建设置/标题搜索路径 "$PODS_CONFIGURATION_BUILD_DIR/[您的项目名称]/[您的项目名称].framework/Headers"

                现在导入头文件。

                    #import <DirectProximityFramework.h>
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-11-20
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-07-14
                  • 1970-01-01
                  相关资源
                  最近更新 更多