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
    Commented Oct 18, 2010 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
    Commented Oct 18, 2010 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
    Commented Oct 19, 2010 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\$ Commented Oct 22, 2010 at 4:00
  • \$\begingroup\$ @Andrew Russell - lol \$\endgroup\$
    – Allan
    Commented Oct 25, 2010 at 2:16

1 Answer 1


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\$ Commented Oct 18, 2010 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
    Commented Oct 19, 2010 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
    Commented Oct 19, 2010 at 23:05

You must log in to answer this question.

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