Skip to content

Unwanted diffs for Xcode 16+ #1018

Description

@adellibovi

Background
Starting from Xcode 16, Xcode adds empty inputsPaths and outputPaths causing unwanted diffs when running a pod install.

Why This Is a Problem
These unnecessary entries make the project file needlessly complex and create unwanted diffs.

Solution
As a workaround:

pre_install do |install|
  Xcodeproj::Project::Object::PBXShellScriptBuildPhase.class_eval do
      def to_hash_as(method = :to_hash)
        hash_as = super
        included_keys_for_serialization_when_empty.each do |key|
          if hash_as[key].nil?
            hash_as[key] = []
          end
        end
        hash_as
      end

      def included_keys_for_serialization_when_empty
        %w(inputPaths outputPaths)
      end
  end
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions