【问题标题】:Build Failing for React Native iOS, "Multiple commands produce" ErrorReact Native iOS 构建失败,“多个命令产生”错误
【发布时间】:2020-03-19 07:36:12
【问题描述】:

我们正在开发一个 React Native 项目。我的一位团队成员在 Linux 上添加了一些本机模块并链接了 android。到那时,我正在尝试在 iOS 中链接事物,但构建总是因这种错误跟踪而失败。 Android 项目正在正常构建中。

我删除了xyz.xcworkspacePodfile.lock 然后尝试了pod install
另外,我尝试删除我的node_modules,然后是yarn install,然后是yarn link

react-native-cli: 2.0.1  
react-native: 0.61.4  
yarn 1.19.1
Pod 1.8.4
XCode Version 11.2.1 (11B500)
macOS Catalina 10.15.1 (19B88)

xyz 警告

duplicate output file '/Users/user/Library/Developer/Xcode/DerivedData/xyz-hhesslamjsqmbobykhskliclusph/Build/Products/Debug-iphonesimulator/xyz.app/AntDesign.ttf' on task: PhaseScriptExecution [CP] Copy Pods Resources /Users/faisal/Library/Developer/Xcode/DerivedData/xyz-hhesslamjsqmbobykhskliclusph/Build/Intermediates.noindex/xyz.build/Debug-iphonesimulator/xyz.build/Script-47F818C57EEC47EA3303EA1B.sh

xyz 工作区错误

Multiple commands produce '/Users/user/Library/Developer/Xcode/DerivedData/xyz-hhesslamjsqmbobykhskliclusph/Build/Products/Debug-iphonesimulator/xyz.app/Zocial.ttf':
1) Target 'xyz' (project 'xyz') has copy command from '/Users/user/Desktop/xyz/native/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' to '/Users/user/Library/Developer/Xcode/DerivedData/xyz-hhesslamjsqmbobykhskliclusph/Build/Products/Debug-iphonesimulator/xyz.app/Zocial.ttf'
2) That command depends on command in Target 'xyz' (project 'xyz'): script phase “[CP] Copy Pods Resources”

有多个类似这样的错误和警告,但格式相同,文件名不同。

【问题讨论】:

    标签: android ios xcode react-native react-native-ios


    【解决方案1】:

    问题是由于 RN 自动链接,您有重复的资源。 解决这个问题

    1. 在项目文件上单击您的 Xcode 项目名称
    2. 导航到构建阶段标签
    3. 向下滚动到复制捆绑资源s下拉展开
    4. 向下滚动到复制 Pod 资源,然后将重复项与 Copy Bundle Resources 上的副本进行比较
    5. 删除Copy Bundle Resources而不是Copy Pod Resources上的重复项
    6. 重建您的项目。 也可以参考这个issue

    【讨论】:

    • 谢谢你帮我做的!去发帖冲浪终于找到了我要找的东西
    • Ionicons 字体有问题导致构建失败。不过,这为我解决了!非常感谢:)
    • 我从 Copy Bundle Resources 中删除了“Images.xcassets”,它对我有用,尽管“Images.xcassets”不在 Copy Pod 资源中。
    【解决方案2】:

    问题似乎是由 React Native 0.60 中的新自动链接功能引起的 - 行 use_native_modules!在 ios/Podfile 中意味着当您进行 pod install 时,在 node_modules 中找到的任何 pod 都会自动链接。这意味着当您进行 pod install 时,所有字体文件的链接都会添加到 [CP] Copy Pods Resources。

    请看这张图片。

    1. 在 Xcode 中打开您的 iOS 项目。

    2. 然后按照图片中的这些步骤操作。

    1. 您将在 Copy Pod 资源 下看到 输入文件输出文件。从复制捆绑资源中的上述列表中删除此处列出的重复项。

    2. 运行react-native run-ios

    【讨论】:

    • 我很高兴这有帮助:)
    • 我不敢相信这么好的答案只得到一票
    • 就我而言,使用 react-native 的解决方案是删除所有这个 .ttf 文件。
    【解决方案3】:

    您需要从 Copy Bundle 资源中手动删除它。

    否则您需要更改构建设置以使用旧版构建。

    您将在构建阶段下找到 Copy Bundle 资源。

    【讨论】:

    • 在哪里可以找到Copy Bundle resource?或要更改的设置。
    【解决方案4】:

    我可以按照此步骤解决问题。 您所要做的就是打开您的项目文件夹 -> 转到 /ios 并打开文件YourProjectName.xcodeproj 然后按照此https://lifesaver.codes/answer/error-multiple-commands-produce-in-xcode-10,然后您只需删除那里的所有字体并运行npx react-native run-ios

    【讨论】:

      【解决方案5】:

      对于 xCode 11+ 和 react-native 0.60+,

      答案抄自this GitHub issue answer

      这个问题似乎是由新的autolinking 功能引起的 React Native 0.60 - use_native_modules! 中的行 ios/Podfile 意味着当您执行 pod install 时,在 node_modules 中找到的任何 pod 都是 自动链接。这意味着所有字体文件的链接都是 当你做pod install时添加到[CP]复制Pods资源。

      如果您之前手动安装了react-native-vector-icons 将字体文件添加到 Copy Bundle Resources,然后您会得到一个 “多个命令产生...”致命的构建错误。

      所以要解决这个问题,只需从 Copy Bundle 中删除字体文件 资源,以便它们仅在 [CP] Copy Pods Resources 中。

      所以该库的repository 上的官方文档已经过时了,并没有提及。您应该按照安装步骤将字体列表添加到info.plist,并且不要创建Fonts 文件夹组并将字体复制粘贴到该文件夹​​中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-10
        • 2017-04-10
        • 1970-01-01
        • 2021-09-23
        • 2019-06-06
        • 2019-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多