Professional Documents
Culture Documents
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.
• 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.