When I try to run my beta lane I get this error: enter image description here
My staging lane work perfectly however this pre-prod lane isn't executing. Difference between the lanes in the scheme. I can't find the exact issue. Do you guys have any idea how to solve such an issue?
❌ error: Multiple commands produce '/Users/user/Library/Developer/Xcode/DerivedData/ATPAutoteile-ewiwulmkdtysbjegycpawxyttoab/Build/Intermediates.noindex/ArchiveIntermediates/ATPAutoteileProd/IntermediateBuildFilesPath/ATPAutoteile.build/Release-iphoneos/ATPAutoteileProd.build/DerivedSources/Pods-ATPAutoteileProd-checkManifestLockResult.txt'
duplicate output file '/Users/user/Library/Developer/Xcode/DerivedData/ATPAutoteile-ewiwulmkdtysbjegycpawxyttoab/Build/Intermediates.noindex/ArchiveIntermediates/ATPAutoteileProd/IntermediateBuildFilesPath/ATPAutoteile.build/Release-iphoneos/ATPAutoteileProd.build/DerivedSources/Pods-ATPAutoteileProd-checkManifestLockResult.txt' on task: PhaseScriptExecution [CP] Check Pods Manifest.lock /Users/user/Library/Developer/Xcode/DerivedData/ATPAutoteile-ewiwulmkdtysbjegycpawxyttoab/Build/Intermediates.noindex/ArchiveIntermediates/ATPAutoteileProd/IntermediateBuildFilesPath/ATPAutoteile.build/Release-iphoneos/ATPAutoteileProd.build/Script-B98B4A1A51B148FF9682C9F2.sh (in target 'ATPAutoteileProd' from project 'ATPAutoteile')
** ARCHIVE FAILED **
[09:52:57]: Exit status: 65
I checked [CP] Check Pods Manifest.lock and I have 2 variables there, but I'm not confident if I should delete one or not.
Error from the log file:
error: Multiple commands produce '/Users/user/Library/Developer/Xcode/DerivedData/ATPAutoteile-ewiwulmkdtysbjegycpawxyttoab/Build/Intermediates.noindex/ArchiveIntermediates/ATPAutoteileProd/IntermediateBuildFilesPath/ATPAutoteile.build/Release-iphoneos/ATPAutoteileProd.build/DerivedSources/Pods-ATPAutoteileProd-checkManifestLockResult.txt'
note: That command depends on command in Target 'ATPAutoteileProd' (project 'ATPAutoteile'): script phase “Run Script”
note: That command depends on command in Target 'ATPAutoteileProd' (project 'ATPAutoteile'): script phase “[CP] Check Pods Manifest.lock”
Update: I think I found the issue. My project.pbxproj file is probably corrupted. One of my colleagues added Detox testing in the app and I think that added a new build step to the production Schema:
DE0C3FC267A3918F85ED3A32 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ATPAutoteileProd-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
and this is causing the duplicate issue. I don't have the necessary experience with native programming to solve the issue, can anyone maybe help me out here?
Existing build step:
A31E9DFB76A71B2800EDF265 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
dependencyFile = "$(DERIVED_FILES_DIR)/$(INPUT_FILE_PATH).d";
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ATPAutoteileProd-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
};