Issue with Three20 Framework since AppCode 1.5

Hi there,

I'm not sure wether this is the right place to ask this, if the issue is related to Three20 itself or AppCode, but I'll post it anyway.

I've been using the Three20 frameworks for an iPhone app I've been working on for quite some time now. After upgrading to AppCode 1.5 yesterday I'm unable to build (and run) the app on any of the simulators or an IOS device. I get the following output in the messages console:

Information:Information:Building target 'Three20Core' from 'Three20Core' with configuration 'Debug' for architecture 'i386' using 'Simulator - iOS 5.1' sdk
Information:Information:Building target 'Three20Network' from 'Three20Network' with configuration 'Debug' for architecture 'i386' using 'Simulator - iOS 5.1' sdk
Information:Information:Building target 'Three20UICommon' from 'Three20UICommon' with configuration 'Debug' for architecture 'i386' using 'Simulator - iOS 5.1' sdk
Error:Error:2012-03-14 16:35:14.430 xcodebuild[83903:4d03] Unexpected internal inconcistency: No recorder for buildTask: <Xcode3BuildTask: 0x4017fdf60:'CpHeader TTCorePreprocessorMacros.h':REfc(0):deps=0:phaseNum=4>
Error:Error:The following build commands failed:
Error:Error:CompileC build/ Sources/TTGlobalNetwork.m normal i386 objective-c
Error:Error:Build Finished with Error: 65
    Information:Information:/Applications/ -dynamic not specified the following flags are invalid: -ObjC
    Error:Error:line (20)'Three20Core/TTDebug.h' file not found

The files it complains about are obviously present and nothing has changed between upgrading from AppCode 1.0.4 to 1.5. Everything works fine in XCode 4.3.1 and in AppCode 1.0.4 as well (after reinstalling the old version of AppCode).

This is easy to reproduce by creating a new project and adding the Three20 framework to it and then trying to build it.

Here are the steps required (terminal):

mkdir ~/Desktop/Test/

cd ~/Desktop/Test/

git clone

Now create a new IOS (iphone only in my case) project (either in XCode or AppCode), call it Three20Test and save it in ~/Desktop/Test/ (so the project is saved in ~/Desktop/Test/Three20Test/) and close the project.

Back in the terminal (assuming you're still in ~/Desktop/Test/):

python three20/src/scripts/ -p Three20Test/Three20Test.xcodeproj Three20 Three20Core Three20Network Three20Style Three20UI Three20UICommon Three20UINavigator extThree20XML

If you reopen the project in XCode or AppCode 1.0.4 and try to build, it works fine (AppCode might warn about some linker flags).

If you open the project in AppCode 1.5 and try to build it it, the compiler spits out the same warnings as attached to this post.

I don't know if this is the right place to post it, but I hope someone is able to help me or shed some light on this.

Comment actions Permalink

I don't have a clear answer for you but a couple of days ago I started using AppCode 1.5 for the first time with my rather large project that is using Three20 and I don't have any issues. I will add that my copy of Three20 is probably 9 months old. It works for me and I'm only using a small portion of it so I'm afraid to update.

One thing I notice in your error messge is a reference to 'Xcode3BuildTask'. It seems AppCode is trying to build the wrong Three20 target perhaps.

Good luck.

Comment actions Permalink

Thanks for the suggestion Rick!

I've tried playing around with the targets as you suggested, completely removed the three20 unittest targets, toyed around with the linker flags but nothing worked. I decided to drop the three20 framework completely while I still could, only took me a couple of hours luckily. I still need to rebuild the UI parts, but I think I'll use Nimbus for that. Atleast my app builds (a lot faster!) and runs again in AppCode 1.5.

Comment actions Permalink


I've tries the steps you described, but couldn't reproduce the problem - the project builds and runs.
Please let us know if you experience the issue again.


Please sign in to leave a comment.