New App Store Guidelines about downloading code?

In the prior release of Apple's App Review Guidelines, section 3.3.2 said that you could download code to your app provided it 1) was using WebKit or JavascriptCore, and 2) it didn't change the app's functionality substantially.


Apple's most recent guidelines of June 13, 2016 say:


2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other iOS, watchOS, Mac OS X, or tvOS apps.


Is this a reversal from previous guidelines, or am I just reading too much into it? Especially since apps that allow coding of some sort are still avaialble...


Anyone have anything more concrete and official on this? I can't find anything more concrete.

I think they're new only in the case of moving the furniture around...change for change's sake is part of how Apple operates sometimes - my opinion is that while that verbiage may be different, the policy behind it isn't.

Just prior to these new guidelines the old guidelines were:


2.7 Apps that download code in any way or form will be rejected

2.8 Apps that install or launch other executable code will be rejected

2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript


So I suspect you are misreading 3.3.2 if you think it is saying anything other than the previous 2.17 as far as 'code' is concerned.

Does this depend on the definition of "code". In my reading of what you quote and the new guidelines, I get the impression that "code" refers to native compiled, whereas the 3.3.2 section I quote from the previous guidelines gives me the impression of interpreted code, which is what I plan on using.


Am I wrong in this?


Thanks.

You are most likely wrong. And you don't quote - you just wrote "3.3.2 said that...." It is difficult to respond to that. But if you see something in the first draft of a documnet that does not occur in a second draft there is no fair presumption that that first draft provides guidance. In fact, there is a fair presumption that, becuase it was changed, the first draft provides contra-guidance. I quoted from the earlier guidelines. They can be fairly used to interprete the newer guidelines, especially in so far as the newer guidelines are meant to be more 'readable' if less precise.

>...code" refers to native compiled, whereas the 3.3.2 section I quote from the previous guidelines gives me the impression of interpreted code

I'd suggest that the difference is only in implementation, so it's still defined as code.

True enough. Here is the quote:


"3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store."


taken from https://developer.apple.com/programs/ios/information/iOS_Program_Information_4_3_15.pdf


Based on the language in this quote and the quotes you provide, I believe that "executable code" means native, compiled code, and is forbidden. Javascript, if downloaded and run inside JavascriptCore, is acceptable, according to my (and others) interpretation (no pun intended).


Also, the original quote I gave uses the term "execute code", which, based on our discussion, I take as not applying to interpreting code, and is acceptable.

I think I'm on solid ground. Thanks for the frank discussion.

Hold on here. Your 3.3.2 says "Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded." It does not say you can download interpreted code. In fact it explicitly says that "the only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore." Since it gives a specific exception of which interpreted code can be downloaded it is asserting that other interpreted code may not be downloaded. That's what 3.3.2 is saying.


The previous guidelines said "Apps that download code in any way or form will be rejected" - so that includes interpreted code - otherwise what does 'in any way or form' mean?


The current guidelines state "nor may they download code..." so that's another no.


Seems like old - no, recent - no, new-no or "no no no".


Further; you should realize that if you submit an app that does not explicitly indicate to App Review (in the notes to App Review) that it is downloading and executing interpreted code based on some interpretation of a 2015 "guideline document" then you might be subject to removal from the developer program. After all, it's a security issue, isn't it; what might your interpreted code do?

New App Store Guidelines about downloading code?
 
 
Q