You are on page 1of 4

Xcode Tools 2.4.1


For Mac OS X version 10.4.x (Tiger)

Compatibility
• Xcode Tools 2.4.1 is a full release of the Xcode development tools suite. It requires Mac OS X v10.4.x
and is able to upgrade previous installations of Xcode Tools 1.x and 2.x releases.
• Xcode 2.4.1 supports development for Mac OS X 10.2 (Jaguar), Mac OS X 10.3 (Panther), or Mac OS X
10.4 (Tiger) or Universal binaries for PowerPC and Intel architectures on Mac OS X 10.4 using Mac OS X
SDK support. Development for Mac OS X 10.2 requires downloading and installing the separate 10.2.8
SDK package available from the ADC website.
• The Xcode project file format and extension changed for Xcode 2.1 and later. See the product
documentation for more information.

Changes in this release


• Selected fixes were made in the Xcode IDE, cctools, debugger, and compiler.
• CHUD has been updated to version 4.4.3. CHUD also releases independent from the Xcode Tools
releases. Current versions of CHUD can be found at:
http://developer.apple.com/tools/download/
• The 10.3.9 and 10.4u SDK’s have been updated.

Known issues: Commonly-reported issues known in this release


• Spaces in project path item: Any build setting that contains a path (or includes another build setting
that resolves to a path) must be enclosed in double quotes if the path is likely to contain a space
character. Xcode will handle the quoted value correctly, but will fail if an unquoted value resolves to a
path that includes a space.
• For build settings that do not have explicit per-architecture versions, you can define the explicitly-
supported build setting in terms of another, per-architecture setting which you define manually. For
example, to define the Other Linker Flags setting using a mix of architecture-independent and
architecture-dependent settings, you can configure your build settings with the following definitions:
OTHER_LDFLAGS = -flag1 -flag2 $(OTHER_LDFLAGS_$(CURRENT_ARCH))
OTHER_LDFLAGS_ppc = -ppc_specific_flag
OTHER_LDFLAGS_i386 = -intel_specific_flag

• Referencing files and folders when a symlink is in the path: 
Xcode tracks symlinks (like
/usr/lib/libz.a). However, there is a regression with references to files and folders where a symlink
exists anywhere but the last path component. Symlinks like /tmp/ (which points to /private/tmp/) are
handled properly. The biggest impact is to files and folders on statically mounted network volumes
(dynamically mounted network volumes are not affected). The only workarounds are to either only use
absolute paths for references that are affected or to move such files to locally mounted or dynamically
mounted network volumes.
• Limitations When importing CodeWarrior 10 projects: 
Xcode 2.3 and later don’t recognize the new
optional text based project format available in CodeWarrior Development Studio for Mac OS v10.
• Shared libraries window bugs
: You are unable to change the load level of libraries shown in the Shared
libraries window.
• Setting breakpoints in #included files that aren't members of a target: 
If Xcode is choosing the wrong
location for your breakpoint, you can either edit the location column in the breakpoint window with
the correct executable/dylib/framework/ZeroLink file or add the file to the target with a 'Copy
Headers' build phase.
• Setting breakpoints in dylib C++ Templates using DWARF
: There is a bug in gdb that will cause all the
C++ template breakpoints in a dylib to be collapsed into the first one when the library slides. If you
are trying to set breakpoints on a template #included in a dylib, you will need to ensure the library
doesn't slide when it gets loaded. To do this, add a -seg1addr argument to the "Other Linker Flags"
field in your shared library target.
• Remote debugging to 10.3
: When remote debugging to a 10.3 machine you get the error
mi_cmd_break_insert: Unknown option ``l'' because GDB on 10.3 doesn't understand the '-l' option
being used by Xcode 2.3 and later. You can workaround this by doing the following in Terminal.

On the 10.3 machine backup /usr/bin/gdb.
# sudo cp /usr/bin/gdb /usr/bin/gdb.orig
Edit /usr/bin/gdb with your favorite command line editor.
# sudo pico /usr/bin/gdb
Change the last line from
exec "$gdb" "$@"
to
exec perl -e 'while($len = sysread(STDIN, $buf, 1024)){$buf =~ s /-break-insert -l -1/-
break-insert/g; syswrite(STDOUT, $buf, $len);}' | "$gdb" "$@"
• Remote debugging to 10.2: 
When remote debugging to a 10.2 machine you need to make the
changes mentioned above for 10.3 and disable 'Load symbols lazily' in the Debugging section of
Xcode's Preferences.
• Xcode 2.4.1 bug fixes may make projects incompatible with Xcode 2.1. The Xcode 2.4.1 file format
and build system are backwards compatible with Xcode 2.1, but this does not extend to new features
in Xcode 2.4.1 or Xcode features that have problems in Xcode 2.1. If you exploit a new feature or bug
fix in Xcode 2.4.1 in your project, it may not work on Xcode 2.1. This includes (but is not limited to):
o Using .xcconfig files in project-level build settings
o Compiler features like symbol separation, Essential Symbols, and per-architecture build settings
o Using macros in Run Script build phase input and output paths
o Includes and comments in .xcconfig files
o Projects and targets based on .xcconfig files that are missing at project load time
o Use of User Header Search Paths, Rez Prefix Files, GCC_VERSION_IDENTIFIER, or other new build
settings
o Reliance on the updated 10.4u SDK included with earlier versions of Xcode 2.X
• Accessing subproject build products in a copy files build phase. If you are using the default per-
configuration build folders, a project may not be able to refer to the build products of a subproject in
its Copy Files build phase. We recommend you use a shared build folder for projects that require
access to each others’ build products.
• Preprocessing Info.plist adds whitespace that causes XML parse failure. Using the Preprocess Info.plist
feature may produce an invalid XML file. Add the -traditional flag to “Info.plist Other Preprocessor
Flags” may help.
• Project find, debugger, or other views are partially obscured. Changing screen geometry (due to
adding/removing an external monitor or waking from sleep) may cause parts of the Xcode user
interface to redraw wrong. Resizing the windows corrects this.
• SDKs: When defining the “SDK Path” (SDKROOT) build setting for a project or target, consider explicitly
defining the “Mac OS X Deployment Target” (MACOSX_DEPLOYMENT_TARGET) build setting to an
appropriate value (usually, to the earliest release of Mac OS X on which the software should run). This
can avoid certain compile-time or run-time errors by ensuring Xcode will generate code and use
libraries appropriate for the release of Mac OS X you are targeting. If you use different SDKs per-
architecture (e.g., SDK_ROOT_ppc), use the corresponding per-architecture deployment target setting
(e.g., MACOSX_DEPLOYMENT_TARGET_ppc).
Installation

• The XcodeTools.mpkg package contains several separate sub-packages in the Packages folder that allow
flexibility in installation and updating:
o Developer Tools (DeveloperTools.pkg): This package contains Xcode, gdb, and the other
tools necessary for Macintosh development.
o GCC 4.0 (gcc4.0.pkg): This is the latest version of gcc. This compiler is necessary for 64-bit
development.
o GCC 3.3 (gcc3.3.pkg): This package contains the gcc 3.3 compiler.
o Software Development Kits: These packages provide the header files and link libraries
necessary for Macintosh development. All Macintosh development requires the Mac OS X SDK
that provides the API for basic Macintosh technology such as Carbon, Cocoa, and command-
line tools. The other SDK packages provide API for extended Macintosh technologies, such as
QuickTime or OpenGL, etc.
o Java 1.4 Developer Tools: These packages are used when developing Java 1.4 applications for
Macintosh.
o Developer Documentation (DevDocumentation.pkg): This package contains the core
Macintosh developer documentation for technologies such as Carbon, Cocoa, QuickTime,
WebKit, etc.
o Developer Example Software (DevExamples.pkg): The package contains example code for a
wide variety of Macintosh technologies. Note that these examples may require any of the
above Software Development Kits to be installed before they will compile.
o WebObjects (WebObjects.mpkg): The packages necessary for WebObjects 5.3 development.
o Cross Development Packages for Mac OS X v10.2 (Jaguar), Mac OS X v10.3 (Panther), and Mac
OS X v10.4 (Tiger) to allow cross development. (MacOSX10.2.8.pkg, MacOSX10.3.9.pkg, and
MacOSX10.4u.pkg). These can be installed together or independently, and can be installed
separately from the installation of the rest of Xcode. You must install the MacOSX10.4u.pkg to
build universal binaries. (CrossDevelopment.mpkg)
o CHUD (CHUD.pkg): The Computer Hardware Understanding Developer Tools.

• Downloading and installation:


o Download the disk image from the ADC Member Site
o Double click on the disk image to mount
o Double click on the XcodeTools.mkpg file to install. This will require an administrator password.
o Follow the instructions in the installer. If you want to install CHUD, WebObjects packages,
additional SDKs, or the Java 1.4 Reference Documentation, you must select "Custom Install",
and check those packages.
o Authenticate as the administrative user. The first user you create when setting up Mac OS X
has administrator privileges by default.
o NOTE: Xcode Tools MUST be installed on the same hard drive partition from which you booted
Mac OS X. The Installer prevents installation on any other partition.
o If you encounter any problems in installation, including not having enough disk space to do
the installation, please refer to the "Troubleshooting" section below.
o Once you have installed the Xcode Tools package, you can access the documentation by
launching Xcode and choosing any of the items in the Help menu, or by launching Help
Viewer and clicking on the Developer Center link at the bottom of the Help Center welcome
page. Developer applications, such as Xcode and Interface Builder, are installed in
/Developer/Applications.
o It is highly recommended that you copy any of the examples in /Developer/Examples to
another directory before opening them and modifying them. If a particular example is
modified such that it no longer works, you must remove the example, and reinstall the entire
examples package by double-clicking on Packages/DevExamples.pkg on the Xcode Tools
installation disk.
Troubleshooting
• If you have a small amount of disk space on your boot volume, you can set up a symbolic link for any
part of the /Developer hierarchy. The installer will respect the symbolic link and install the files
correctly. For more information on symbolic links, see "man ln".
• In some configurations upgraded from Jaguar to Tiger, the Project Builder IDE and Xcode IDE will both
be available in the /Developer/Applications folder. The Project Builder IDE is not supported for use on
Tiger.
• Uninstalling Xcode Tools
o To uninstall from the CD or disk image that contains Xcode Tools, type in a Terminal window:
$ sudo perl /Volumes/Xcode\ Tools/Utilities/uninstall-devtools.pl
o To uninstall Xcode Tools on your system, type in a Terminal window:
$ sudo perl /Developer/Tools/uninstall-devtools.pl
o NOTE: The uninstaller that ships with previous versions of Xcode Tools or the Developer Tools
will not clean everything off of your system properly. You should either use the one on the
Xcode Tools 2.4.1 DVD or the one installed with the Xcode Tools 2.4.1 installation.
o NOTE: Running the uninstall script from Xcode Tools will uninstall any previous installations
of Mac OS X Developer Tools or Xcode Tools releases.
o NOTE: After running the uninstall script, you should restart your system before installing the
Xcode Tools again.

Thank you for your support,


Apple Developer Connection

You might also like