"And this is where we run into the first bit of craziness. Amazon decided that they should model the Alexa app store after the iPhone app store. So there is a certification process to get your app into the store. But think about the difference: you are not uploading a binary file to the Alexa app store, you are simply registering an URL. So Amazon has no real control over your software. You could get an app approved, and then you could swap out the app for any other app, and the Certification team at Amazon would never know. They don’t control your code. Your code is not in their store, so they have no control over what you do. And yet they modeled this process after the iPhone store, where Apple does have control over your app."
But that doesn't get at how crazily broken the certification system. You have to read the quotes from the other developers to understand that.
As for the effectiveness of that control, there's little practical difference between "simply registering an URL" and uploading a binary; both can load external content or be modified (in terms of what the user actually sees/experiences) almost entirely after the initial review. There will always be apps that try to abuse that possibility, and they usually get reported or re-evaluated, but it's probably a very small number of apps that will do that.
The point is to simply filter out a larger number of spammy, malicious, or otherwise offensive apps at the onset rather than spending more resources constantly monitoring everything after the fact. That said, it's unfortunate when the review process is as flawed as it seems to be in this case (poor communication, inconsistent policies, etc).
Apple will scan your App to check for basic violations, that's all automated. For instance is there a specific flag that you can initialize a socket with to listen in background. This is only allowed if your app is supposed to stream music in background or do some VoIP thing. So if you're app is not that and the software detects you have that flag set anywhere in the code no way you will get it through the certification. There's simply no possibility for such analysis with a URL.
I don't think the concept of a certification process is the problem, just the implementation is terrible (compared to the Apple process which is merely "poor")
Most of the apps caught in the review process are probably those that fail other guidelines (usefulness, privacy concerns, illegal/inappropriate content, poor UX/quality, excessive crashing, etc). Most of those things can't be caught by automated means, and the content-related things can certainly be changed after initial review.
I've personally worked on several apps that significantly modify app behavior after being published - not so much to bypass any review requirements, but rather to adapt to changing business needs without waiting to publish a new release.
http://venturebeat.com/2008/12/23/iphone-fart-app-pulls-in-n...
But the big deal that no one talks about is that Alexa is not compatible with EC2 backends, this is the most bizarre limitation I've ever seen, you can host An Alexa app on your own PC at home, but not on EC2.
Source on this? I know last time I played with it, they weren't doing SNI (in 2015, what?) but I've never heard of it not being able to hit EC2 IPs.
> 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.
And at the end they gave up and said that yeah its something deep in the implementation and I should use something else.
I don't want to post the mails but anyone can try it out !
There is one really weird thing where you can't use US West to do an Amazon Lambda passthrough to your server, but as far as I know EC2 instances in any region should work for Alexa to call out to.
But I have the mail conversation here (10 people at least and dozen of back and forth).
This was 2 months ago and I gave up on it for this specific reason.
Also, you can similarly get around the iPhone cert process buy only having certain code run after a certain date, or when you trigger something remotely.
That said, I'm curious how you managed to get an email conversation going with the team - the whole crux of the original article by Lawrence (and the forum thread which it cites) is that there's no way to have a direct conversation with anyone representing Alexa, so certification is a crapshoot.
A moderately clever developer could sneak something past the Apple app store review too. Wasn't there a flashlight app that included a secret wifi tethering tool?