Carthage: Failed to create temporary outfile 'XXXX.tmp%%%%%%.dwarf': No such file or directory

Created on 19 Nov 2015  Â·  5Comments  Â·  Source: Carthage/Carthage

This occurs when running Carthage in a directory with a % in its name.

First if I run the project cloned into a folder named "Project Name" it will work fine

➜  Project Name git:(develop) ✗ carthage update
*** Fetching DateTools
*** Fetching PureLayout
*** Fetching ios-charts
*** Checking out PureLayout at "v3.0.1"
*** Downloading ios-charts.framework binary at "New features, general improvements"
*** Checking out DateTools at "v1.7.0"
*** xcodebuild output can be found in /var/folders/ds/2k3350ts0_95nzmy9zl66xc1q4_8cc/T/carthage-xcodebuild.mjStD0.log
*** Building scheme "DateTools" in DateToolsExample.xcodeproj
2015-11-19 13:29:46.545 xcodebuild[33015:6980230] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:29:46.547 xcodebuild[33015:6980230] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:29:49.537 xcodebuild[33090:6980426] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:29:49.539 xcodebuild[33090:6980426] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
*** Building scheme "PureLayout_Mac" in PureLayout.xcodeproj
*** WARNING: Skipping build for "macosx" SDK because the necessary signing identity "-" is not installed
*** Building scheme "PureLayout_iOS" in PureLayout.xcodeproj
2015-11-19 13:29:56.011 xcodebuild[33272:6981068] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:29:56.012 xcodebuild[33272:6981068] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:29:58.568 xcodebuild[33336:6981245] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:29:58.569 xcodebuild[33336:6981245] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
➜  Project Name git:(develop) ✗ 

The same project cloned into a folder called "project%20name" produces the following output

➜  project%20name git:(develop) ✗ carthage update
*** Fetching DateTools
*** Fetching PureLayout
*** Fetching ios-charts
*** Downloading ios-charts.framework binary at "New features, general improvements"
*** Checking out PureLayout at "v3.0.1"
*** Checking out DateTools at "v1.7.0"
*** xcodebuild output can be found in /var/folders/ds/2k3350ts0_95nzmy9zl66xc1q4_8cc/T/carthage-xcodebuild.oYezSG.log
*** Building scheme "DateTools" in DateToolsExample.xcodeproj
2015-11-19 13:30:35.417 xcodebuild[33652:6983185] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:30:35.419 xcodebuild[33652:6983185] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:30:38.387 xcodebuild[33726:6983592] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMColorSense.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-11-19 13:30:38.388 xcodebuild[33726:6983592] [MT] PluginLoading: Required plug-in compatibility UUID 7265231C-39B4-402C-89E1-16167C4CC990 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ACCodeSnippetRepository.xcplugin' not present in DVTPlugInCompatibilityUUIDs
A shell task failed with exit code 1:
Failed to create temporary outfile '/Users/stephen.groom/Developer/project%20name/Carthage/Build/iOS/DateTools.framework.dSYM/DateTools.tmp%%%%%%.dwarf': No such file or directory

➜  project%20name git:(develop) ✗ 

Background
This bug was found while using a Jenkins server with the multi branch project plugin and a git flow esque workflow. The problem is that git-flow names branches as "feature/featureName" or "release/versionNumber" which the multi-branch plugin converts to folders called "feature%2FfeatureName" and "release%2FversionNumber" respectively.

bug help wanted

All 5 comments

+1

This is an issue from dsymutil and llvm. If you change the Derived Data location to Relative for any Xcode project in such a path, you won't be able to build, with or without Carthage.

Here is the comment documentation for the problematic function createUniqueFile in the llvm source include/llvm/Support/FileSystem.h (implementation is in lib/Support/Path.cpp's createUniqueEntity):

/// Generates a unique path suitable for a temporary file and then opens it as a
/// file. The name is based on \a model with '%' replaced by a random char in
/// [0-9a-f]. If \a model is not an absolute path, the temporary file will be
/// created in the current directory.
///
/// Example: clang-%%-%%-%%-%%-%%.s => clang-a0-b1-c2-d3-e4.s

I submitted a bug over at LLVM, although fixes there wouldn't show up in Xcode for months if ever, AFAIK.

Interesting. Thanks

Is there any workaround for this issue? This is particularly painful when having an Xcode Bot for a project with a space in it's name. It creates a folder in the format "folder%20name" and then the carthage pre-intergration script fails. :(

This still seems to be bug, and since it's an llvm issue, I doubt it's something that will be fixed quickly.

@nickskull, in regards to the Xcode Bot, I made my Before trigger to look like the following. It's a bit of a hack, but it will get you there. Assuming your project is named "Foo Bar":

    #!/bin/bash

    if [ -d FooBar ]; then
        rm -rf FooBar
    fi

    mv Foo%20Bar FooBar

    pushd FooBar
    /usr/local/bin/carthage bootstrap --platform iOS
    popd

    mv FooBar Foo%20Bar

The script just temporarily moves the folder to a name without the "%", does the carthage update and then moves it back.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

davbeck picture davbeck  Â·  54Comments

michaeleisel picture michaeleisel  Â·  44Comments

msaps picture msaps  Â·  48Comments

mstfy picture mstfy  Â·  72Comments

NachoSoto picture NachoSoto  Â·  49Comments