As you all know, Apple recently change the terms for app developers using 3rd dev tools.

I'm wondering how could Apple know whether an app is made with a specific technology like Flash or Unity or GameSalad or any other engines out there?

  • 6
    \$\begingroup\$ It sounds like you're insinuating that you think things like Flash or Unity are still banned. That's not the case anymore. gizmag.com/apple-relaxes-development-tool-restrictions-for-ios/… \$\endgroup\$
    – Tetrad
    Oct 18 '10 at 14:38
  • \$\begingroup\$ That does sound like the case, but the OP seems to be interested to know how one could tell the difference. \$\endgroup\$
    – Nate
    Oct 18 '10 at 15:42
  • \$\begingroup\$ Yes. I just want to know how would Apple differentiate the technologies an app would use. I know Apple had already relaxed its terms. Thanks. \$\endgroup\$
    – astk
    Oct 19 '10 at 7:48
  • 1
    \$\begingroup\$ The joke goes something like this: "If all these managed-language applications are compiled down to ARM, how will Apple tell the difference from regular applications?" / "Easy, they'll be the ones that don't leak memory." (ba-dum-tss) \$\endgroup\$ Oct 22 '10 at 4:00
  • \$\begingroup\$ @Andrew Russell - lol \$\endgroup\$
    – Allan
    Oct 25 '10 at 2:16

A simple (but not foolproof) way might be to use the strings utility to examine the binary for known strings: version stamps, error messages, etc.

If symbols aren't entirely stripped (not likely in a submitted build) you can use something like nm or objdump or the like to see the names of symbols. Some symbol names may be a good indication that a particular tool, compiler, library, or framework was used.

You could look for machine code or data headers that are known to correspond to a specific version of a compiler, library, or tool.

You could suspend the app and scan its memory region, potentially, to do similar checks, looking for known patterns (akin to the way a virus scanner might work).

Of course there are a number of ways to attempt to guard an app against such checks. For example, you could compress and/or encrypt the majority of the executable and/or data. But if your app can decrypt it, likely so can an investigator...

I'd imagine they don't bother investigating unless they have reason to. They might potentially automate some of these checks if they really cared, but these checks might only flag the obvious uses of the tech...

  • \$\begingroup\$ I'd expect they don't investigate until they have a reason also. As no Unity apps were turned away during the Ban. \$\endgroup\$
    – Jesse Dorsey
    Oct 18 '10 at 18:09
  • \$\begingroup\$ Yeah. It sounds like way too mess for such massive app submissions unless they can automate as you said. Thanks. \$\endgroup\$
    – astk
    Oct 19 '10 at 7:54
  • 1
    \$\begingroup\$ If you encrypt it within the binary, they can just look at the code in ram while it's running. \$\endgroup\$
    – 3Dave
    Oct 19 '10 at 23:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .