Take the 2-minute tour ×

So I just found out that ARC is only supported for devices running iOS 4.0+.

How does my app (in the store) work on devices running iOS 3.0 then (definitely using ARC)?

I'm so confused.

Solution from below: As long as I don't use zeroing weak references it seems that using ARC still works with iOS 3.x, but Apple just has not guaranteed the result.

share|improve this question

2 Answers 2

up vote 11 down vote accepted

ARC is mostly a compile time feature, the compiler inserts the appropiate release calls. AFAIK only zeroing weak references need runtime support. So as longs as you don't use those you're on thin ice, but it can work.

share|improve this answer
Hmm okay. Thanks for clearing that up. I'd upvote but I don't have the minimum yet. –  Ryan F Mar 10 '12 at 14:09
Check the Release notes on ARC –  Fernando Madruga Mar 10 '12 at 17:23

Because ARC works at compile time so you can link with SDK 5.0 and support iOS 4.0 if you want. The app will crash on 4.0 if you use any function that's been intruduced on 5.0.

share|improve this answer
You probably ment 3.0? –  rokjarc Mar 10 '12 at 14:40
Nah, you have to compile ARC app's to 4.0, but they'll work on 3.0 until you call a function of a more recent SDK, Just like DarkDust explained. –  fbernardo Mar 10 '12 at 14:43
Ah, sorry. I didn't read your answer properly - you said that it on 4.0 will crash if 5.0 functions are used. My bad - that's true - not really relevant to OP's question though :) –  rokjarc Mar 10 '12 at 14:47
Just giving as an example, basically ARC works at compile time,so, no problem there. The problem is with possible non-existent functions at runtime. –  fbernardo Mar 10 '12 at 14:54

Your Answer


