May 29th, 2012
I’ve been working on a project that makes use of ASIHTTPRequest for my REST needs. It’s been great, I’m a big fan of it.
When I started distributing my build to BETA users we noticed it would start and we’d have an empty screen. Huh? That’s not what was supposed to happen. It should’ve started and made a network request, instead it just stares back at you.
I spent quite a long time trying to figure out what was going on. At first I thought it was some weird TestFlight bug, but nothing could be further from the truth, TestFlight is a rock solid service. I finally posted a question to Stack Overflow, I was desperate. Then it hit me.
This has nothing to do with TestFlight and it only happens with the release build. No network activity, release build, using ASIHTTPRequest, and this is my first project built using LLVM. Ok, that gave me a much better Google search string. Off we went!
It turns out to be a combination of things; LLVM Optimizer + ASIHTTPRequest + ARC, is the cause of my grief. Luckily I’m not the only person that’s discovered this problem and it’s documented on Stack Overflow as well as the ASIHTTPRequest Google group.
The Bottom Line
If you are using Apple’s LLVM compiler, ASIHTTPRequest, ARC, and building for release, or archive, make sure you follow the instructions outlined in the answer for the Stack Overflow post or the ASIHTTPReqeust Google group.