[!] [Xcodeproj] Generated duplicate UUIDs:

在执行pod install 的过程,提示了如标题错误,原因:

Xcode在编译过程中遇到了同名文件,正常来说每个文件的UUID是唯一的,并且是不会变的。
但是在加入第三方库的过程,可能会出现了同名文件的情况。

解决办法有两种:

一、找到同名文件,然后删除保持唯一

二、使用 install! 'cocoapods', :deterministic_uuids => false命令

这个命令用于在 Podfile 中配置 CocoaPods 的安装行为,其中 install! 'cocoapods', :deterministic_uuids => false 设置了特定的选项来影响 CocoaPods 生成项目文件的方式。

详细解释

install! 'cocoapods', :deterministic_uuids => false
  • install! 'cocoapods':

    • 这是一个用于配置 CocoaPods 安装行为的命令。
    • 'cocoapods' 指定配置的是 CocoaPods 安装。
  • :deterministic_uuids => false:

    • :deterministic_uuids 是一个配置选项。
    • false 是将这个选项设置为关闭状态。

配置选项:deterministic_uuids

  • 默认行为

    • 默认情况下,CocoaPods 会生成确定性的 UUID(即使多次运行 pod install,UUID 也会保持不变)。
    • 确定性的 UUID 有助于减少版本控制系统中的变更,因为 UUID 不会随每次安装而改变。
  • 设置为 false 的行为

    • :deterministic_uuids 设置为 false 后,每次运行 pod install 时,CocoaPods 都会生成新的 UUID。
    • 这可能会导致项目文件中的变更增多,因为每次安装后,UUID 都会改变。

使用场景

:deterministic_uuids 设置为 false 通常在以下场景中使用:

  • 调试:在调试某些问题时,可能需要生成新的 UUID 来排除确定性 UUID 带来的影响。
  • 特定需求:某些项目可能有特殊需求,不希望 UUID 保持确定性。

示例 Podfile

以下是一个包含这个配置选项的 Podfile 示例:

platform :ios, '12.0'

install! 'cocoapods', :deterministic_uuids => false

target 'MyApp' do
  use_frameworks!

  # Pods for MyApp
  pod 'Alamofire', '~> 5.4'
  pod 'SwiftyJSON', '~> 5.0'
end

在这个示例中,install! 'cocoapods', :deterministic_uuids => false 告诉 CocoaPods 在安装时生成非确定性的 UUID。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容