Live data from Hacker News

RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

daringfireball.net

1–10 of 13 posts

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#2
Did I read this correctly? They overrode a private API call, but then never called the method that they overrode? Or did they only call the method they overrode, and never call the private method.

I don't see why you would override a method but never call it, and if you override it, shouldn't you call [super methodX] (thereby calling the private method)?

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#3
post #2

Did I read this correctly? They overrode a private API call, but then never called the method that they overrode? Or did they only call the method they overrode, and never call the private method. I don't see why you would override a method but never call it, and if you override it, shouldn't you call [super methodX] (thereby calling the private method)?

RogueSheep used the Three20 framework, which overrode the method.

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#5
I just had a app rejected for this same reason.

Although the API was never called, the static analyzer throws a flag when you override any private framework. Joe was doing this for some debugging purposes and accidentally let it through for some release builds a while ago. Just updating to the newest Three20 should fix it.

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#6
This is getting ridiculous. The Objective-C runtime allows dynamic method calls, using performSelector: which takes a selector name, which can be constructed from any random string. This basically means any static analysis tool can be trivially fooled. Apple might as well start rejecting all apps which use any "features" of their runtime.

Who cares whether a method was overridden or called or whatever -- if it's in the runtime it can be invoked.

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#7
Nice. Just thought I would point out that on Android, I can write applications in my language of choice, and I can use any construct I want. If I break something, I get to keep both pieces.

Why do you iPhone guys put up with arbitrary restrictions?

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#8
post #7

Nice. Just thought I would point out that on Android, I can write applications in my language of choice, and I can use any construct I want. If I break something, I get to keep both pieces. Why do you iPhone guys put up with arbitrary restrictions?

40,000,000 more potential customers.

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#9
post #4

The relevant changeset in Three20 where Joe resolves this should answer your questions: http://github.com/facebook/three20/commit/8183ae25528bbc575a...

This commit was an incomplete fix (i.e. you'd still get autorejected after 2 weeks of waiting). Looks like the complete fix was merged in from the uprise78 fork yesterday, so Three20 is safe for the app store once again.

See http://github.com/facebook/three20/commit/c62a4cfd26c19d9248...

Waiting 2 weeks for an Apple reviewer to press the "run static analyzer" button sucks.

Re: RogueSheep’s Postage App Flagged by Apple’s Static Analysis Tool

#10
post #7

Nice. Just thought I would point out that on Android, I can write applications in my language of choice, and I can use any construct I want. If I break something, I get to keep both pieces. Why do you iPhone guys put up with arbitrary restrictions?

40,000,000 more potential customers.

And forty million other apps to compete with for attention.
Post reply on HN