Xcode 3.1.2 is an update to the Xcode development environment. It works only on Mac OS X 10.5 “Leopard” and can be installed either alongside or replacing Xcode 3.1.1 or earlier. Please see the Xcode 3.1.1 Release Notes and Xcode 3.1 Release Notes for details about previous versions of Xcode. Summary of changes from Xcode 3.1.1Like Xcode 3.1.1, Xcode 3.1.2 has no significant new features over Xcode 3.1. It restructures the relationship between Xcode and the iPhone SDK plugin, and fixes a small number of bugs. Three additional build settings are supported, but are not available in the Build Settings user interface. Note: Due to a production error, the XCODE_VERSION_ACTUAL build setting value in Xcode 3.1.2 returns “0310”.
GeneralSupported configurations Xcode 3.1.2 will run on Mac OS X 10.5 (Leopard) on a Macintosh with either a PowerPC or an Intel processor. It will not install or run on earlier versions of Mac OS X. Xcode supports development for Mac OS X 10.3 (Panther) and Universal development for Mac OS X 10.4 (Tiger) and Mac OS X 10.5 (Leopard) using the Mac OS X SDK support. It also supports cross-development for the iPhone, iPod Touch, and iPhone Simulator using the iPhoneOS SDKs, but only on Macintosh computers with an Intel processor. Warning: Xcode 3.1 2 works only with the iPhone SDK packages delivered with the iPhone 2.2 SDK. If you have installed previous versions of the iPhone SDK, you must upgrade to the newer version of the iPhone SDK when upgrading to Xcode 3.1.2. This will still allow you to develop for iPhone 2.0 and 2.1 as well as 2.2.
Xcode Installation The default location for Xcode Developer Tools is /Developer. However, you may install Xcode 3.1.2 on any volume in any location, and you can move or rename the entire Developer directory after installation. The only restriction is that the directory names of its subdirectories must not be changed, nor moved within the developer directory; but the Developer directory itself may be renamed and placed in any other directory or volume, including servers and external drives. This allows you to have multiple versions of Xcode tools installed on the same system but running independently. The Xcode IDE will use the SDKs, build tools, and auxiliary applications from the Developer directory it is launched from whenever possible, rather than those from the root system. Project File Format Compatibility and Versioning Xcode 3.1.2 reads and builds the targets of project files created in Xcode 2.1 through 3.1.1, and will automatically upgrade project files created in Xcode 1.5 through 2.0. Project files opened and edited with Xcode 3.1.2 are generally compatible with Xcode 3.1.1, 3.1, 3.0, and 2.5; this means that project files you create or open with Xcode 3.1.2 can always be opened and built with Xcode 3.1.1, 3.1, 3.0, and 2.5. There are no incompatibilities between Xcode 3.1.2 and 3.1, though bug fixes may make projects build correctly in 3.1.2 that will not build correctly in earlier versions. If you use a particular feature that would cause your project to fail to build on a prior version of Xcode, you’ll see a Compatibility Notice in the lower right corner of your project window; see Project ▶ Get Info ▶ General ▶ Compatibility to investigate and resolve the compatibility issue.
Summary of New FeaturesThree new build settings allow you to control the output file of strings and plist files processed by Xcode. Note that these settings must be added as a User-Defined Setting and do not normally appear in the Build Settings pane. The default value for these settings is “XML ”. Setting the value of one of these build settings to “binary ” causes all indicated files (Info.plist, other plists file, or .strings file) in the target to be copied into the product bundle in binary format.
Significant Bug Fixes from Xcode 3.1.1In Xcode 3.0, External Targets lost the ability to output the environment variables that are passed to them. This has been restored in Xcode 3.1.2. 6169099 Downloading and installing documentation sets no longer consumes excessive amounts of CPU. 5891184 Edit All in Scope no longer crashes when typing certain composed Unicode characters. 6217303
Known Issues and WorkaroundsHere are some commonly-reported issues that are known with this release of Xcode. If the project.pbxproject file inside your project wrapper is locked, your separate user.pbxuser file will not be written, and breakpoints, custom executables, and window positions you change will not be saved. 4440006 While most known cases have been taken care of, having a space, comma, slash, backslash, tilde, or other character special to the Unix shell in the directory name of any parent folder of your project can cause your project build to fail in unexpected ways. 4101529 Having the same file in your project referred to both directly and via a symbolic link from separate places can corrupt the project index and cause Xcode to crash. Remove the project index and remove the symlink reference to the file. 4056799 On a very small number of systems and for unknown reasons, the I-beam editing cursor does not hide when you start typing. 4191120 In certain circumstances, applications like Xcode can exhaust the Window Server’s ability to create new windows, causing an NSInternalInconsistencyException Error (1000) creating CGSWindow. This will be addressed in a future version of Mac OS X. 3108154 The Touch menu item (or clicking in the “hammer” column) only works for source code files, not headers, libraries, NIB files, resources, or other project files. 4912312 If you define a Source Tree in the Preferences pane, you must quit and reopen Xcode for it to take effect. 4416517 Xcode does not interact well with Spaces; opening auxiliary Xcode windows may switch you to Xcode’s main Space. 5308807 The function popup does not distinguish between functions with the same identifier. 2566673 NSImage caches images in a manner that makes the Objective-C Garbage Collector issue a console log of the form “malloc: free_garbage: garbage ptr = 0x3846140, has non-zero refcount = 1 ”. These can be ignored. The default setting for debugging libraries and frameworks is Load Symbols Lazily. On occasion this causes breakpoints to not be hit. Turning off this setting makes it take longer to start debugging, but hits breakpoints more reliably. Referring to an .xcconfig file using #include does not consult any of the target’s Search Paths; all referenced configuration files should be stored in the same directory. 5850085 Using a port number when setting up a Subversion repository in the Repositories panel generates an inaccurate svn+ssh: URL. Instead of entering the port number in the Repository setup pane, leave off the port number in Xcode and add an entry with the port number in ~/.ssh/config for the desired host. 5801847 A bug in NSFileManager makes restoring from snapshots fail catastrophically in specific circumstances. Until this is addressed, ensure that you have a Time Machine backup or a repository version of your working code before attempting to restore from a snapshot. 5468824 If you build a project prior to importing it into SCM, then the project’s build folder may be imported into your repository, and subsequent Commit Entire Project operations will fail. Remove the build folder from the repository. 4896482 Regular _expression_ searches are limited to single lines. 5842770 Only the version installed in /Developer is available as a Distributed Build volunteer by other computers. 5939834 When adding frameworks or libraries using the Target Inspector, you can only see frameworks in the SDK that the inspected target is configured for. To add frameworks from a different SDK, first change the Base SDK setting of that target. 5931773 Find in File and Project Find will only find the actual key names in a Property List file, not the display names as seen in the Property List Editor. 5946354 Replace does not work in the embedded Property List editor; command-click and choose Open As ▶ Source Code File to perform Find and Replace. 5946376 Syntax-Aware Indentation does not work correctly with certain keyboard layouts, such as German. 5848499 The default Build and Go toolbar item is not useful in projects without a configured Executable, such as KEXT projects. Add a Custom Executable or replace the Build and Go item with Build. 5939297
|