Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
sjgroomi opened this issue Nov 19, 2015 · 5 comments

Comments

@sjgroomi
Copy link

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.

@ghost
Copy link

ghost commented Nov 20, 2015

+1

@cradnovich
Copy link
Contributor

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.

@sjgroomi
Copy link
Author

Interesting. Thanks

@dominik-hadl
Copy link

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. :(

@stack
Copy link

stack commented Mar 11, 2016

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants