Xcode 10构建错误:“必须声明至少一个输出文件”

时间:2018-10-20 22:58:13

标签: ios swift xcode compiler-errors

我正在尝试使用Xcode 10构建一个稍微复杂的应用程序,以便我可以很快将其提交到商店,并且遇到以下错误(出于简单原因更改了路径)。

Showing All Errors Only :-1: shell script build rule for '/Uses/Desktop/ios/app/Vendor/QMServices/QMContactListCache/QMContactListCache/CoreData/QMContactListModel.xcdatamodeld' must declare at least one output file (in target 'QMContactListCache')

我真的不知道这意味着什么,我什至不确定如何在项目中找到目标,因为我看不到它。它在Xcode 9中内置没有问题。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

Error removed by deleting duplicate files in the copy bundle resources

Click on Build phase and click on Copy Bundle Resources In my case i have info.pllist duplicate file in bundle,now working fine for me

1。通过删除副本捆绑资源中的重复文件而消除的错误。 2。单击Build阶段,然后单击Copy Bundle Resources。 3。就我而言,我的捆绑包中有info.pllist重复文件,现在对我来说很好。

答案 1 :(得分:0)

回答实际问题:

  • 在目标设置中,Build Rules
  • 构建规则定义了在构建过程中如何将每种源文件转换为有意义的内容。 (例如,您的 .m 文件是如何使用 clang 编译的)
  • 如果您添加自己的文件处理规则,则需要告诉构建系统您的脚本生成的输出类型
  • 您可以使用 Output Files在脚本编辑器下方

示例:

  • 您使用 Markdown

    Pandoc 文件添加处理器
    • 它会将 .md 文件转换为 .html 文件
    • 第一行参数默认为“Process”Source files with names matching:,你的模式是*.md
  • 第二行参数可以保留为“使用”Custom script:Run once per Architecture 创建。

  • 您的实际脚本可能看起来像这样

    pandoc --standalone $INPUT_FILE_PATH --output "$BUILT_PRODUCTS_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/$INPUT_FILE_REGION_PATH_COMPONENT$INPUT_FILE_BASE.html"

  • 还有更多选项需要配置:Dependency fileInput Files 和最重要的 Output Files,非常容易错过。

    • 点击 Output Files 下方的 +
    • 该值应与您在脚本中使用的值相匹配(在本例中为 $(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(INPUT_FILE_REGION_PATH_COMPONENT)$(INPUT_FILE_BASE).html
  • 现在您可以将 Markdown 文件添加到您的项目中,只需勾选 Target Membership 下的复选框,就像将源代码文件添加到特定目标一样。但不是将文件复制到资源文件夹,而是使用配置的脚本进行处理并生成 HTML 文件。