Search code examples
iosxcodeshelljenkinsxcodebuild

xcodebuild target name with Umlaut


I am trying to build an iOS App using Jenkins via the xcodebuild command.

The problem is that xcodebuild does not detect the target with the German Umlaut ü.

$ /usr/bin/xcodebuild -target AppNameWithUmlautü -configuration Debug clean build

gives me following error:

xcodebuild: error: The project 'AppNameWithUmlautü.xcodeproj' does not contain a target named 'AppNameWithUmlautü'.

I checked the existence of the target using following command:

xcodebuild -list

Information about project "AppNameWithUmlautü":
    Targets:
        AppNameWithUmlautü
        AppNameWithOutUmlaut

    Build Configurations:
        Debug
        Release
        Ad Hoc

    If no build configuration is specified and -scheme is not passed then "Release" is used. This project contains no schemes.

The target without Umlaut works.


Solution

  • Xcode uses the "decomposite" UTF-8 representation for Umlauts in the target name: "ü" is represented as 75 CC 88. 75 is "u", and CC 88 is the UTF-8 sequence for the "COMBINING DIAERESIS".

    The shell, on the other hand, uses the "composite" UTF-8 representation C3 BC for "ü".

    So the target that you give on the command line does not match the target name in the Xcode project (and one could argue that this is a bug in Xcode).

    I have no knowledge about Jenkins, but if you somehow can use the output of the xcodebuild -list command to get the decomposite UTF-8 target name and copy that into your Makefile, shell script or whatever you have, then this should help.