Xcode 4.2 Convert to ARC Troubleshooting

November 3rd, 2011

Filed under: Xcode

One of Xcode 4.2′s new features is compiler support for ARC (Automatic Reference Counting), which automates memory management of Objective-C objects. Xcode 4.2 includes a refactoring tool to convert an existing project to ARC. Choose Edit > Refactor > Convert to Objective-C ARC. When you convert a project to ARC, a sheet opens that walks you through the conversion. But there are a couple of problems that can occur.

Problem 1: Clicking the Save Button Does Nothing

In the last step of the conversion, Xcode shows the changes it will make to each file when it does the conversion. Clicking the Save button is supposed to complete the conversion, but you may find nothing happens when you click the Save button. The only way to close the sheet is to click the Cancel button.

You can get this problem if your project is in a git repository. Xcode is set to take a snapshot of your project when you convert it to ARC. But snapshots do not work well with git repositories. Xcode tries to take a snapshot, the snapshot fails, and Xcode stops the conversion.

The workaround is to move the .git folder out of your project folder temporarily, convert the project, and move the .git folder back. Files that start with a period are hidden by default in the Finder so you will either have to use the Terminal to move the .git folder or use a utility that shows hidden folders in the Finder.

Problem 2: Release Builds of Mac Projects Generate Build Errors

After converting your project to ARC, you may get the following error when you build your project:

-fobjc-arc is not supported with fragile abi

Xcode generates this error when you try to build a 32-bit version of a Mac application that uses ARC. ARC can build only 64-bit Mac applications. The Release build configuration is set to build both 32-bit and 64-bit Intel binaries. The error occurs when building with the Release build configuration because Xcode is trying to build a 32-bit version of your project, which ARC does not support. The solution is to set the Architectures build setting to 64-bit Intel.

Tags:


3 thoughts on “Xcode 4.2 Convert to ARC Troubleshooting

  1. Steve says:

    Thanks. The solution to #1 just helped me.

  2. Gobi says:

    Thanks, now I understand what reasons caused the problem, but still don’t know how to set the Architectures build setting to 64-bit Intel.

  3. Mark Szymczyk says:

    Gobi,

    Read the following post:

    Xcode 4: Accessing Build Settings

    There’s a screenshot in the post that shows the Architectures build setting.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*