Apple: Dicks.

Oh look, they rejected it for the same reason but under a different heading:

10.4: Apps that create alternate desktop/home screen environments or simulate multi-app widget experiences will be rejected

We found that your app, and/or its metadata, contains content that could be misleading to users, which is not in compliance with the App Store Review Guidelines.

It would be appropriate to remove or revise any content referring to "screensaver" screen saver functionalities are not possible on iOS devices.

Do I seriously know nobody who has any inside pull with these asshats?


Update: For those of you who keep suggesting "just change the name" and then showing how clever you think you are with your dumb-assed suggestions, I have two things to say: A: How does it feel being a surrender-monkey? And B: changing the name does not solve the problem that people searching for "xscreensaver" in the app store will not find it if it is released under something-that-is-not-its-name. And, make that three things, C: really, your suggestions suck, and there's a good reason for that: naming it anything else at all makes no goddamned sense, which is why all you can come up with are lame jokes.



Tags: , , , , , ,

64 Responses:

  1. nce says:

    Now I have to wonder if it is BSOD and Apple][ that are the problem, or if the review just didn't like the whole idea of a screensavers because they are too widget-like. Or both, I guess.

  2. Owen says:

    Once again they are complaining about the wording "screensaver." I'd reply with an extensive list of approved apps that claim to be screensavers and ask them how those apps are different from yours. If they kick all screensaver apps out of the store, maybe you can parlay that into a big enough media shitstorm that they are forced to back down (like they did with the political caricature apps).

    I think publicity is your only hope at this point.

    • jwz says:

      Yeah, they've already got a disclaimer for that:

      Note that while other currently available apps may appear to be non-compliant, citing these will not be considered a valid reason for overturning a rejection.

      Translated: "We reserve the right to be inconsistent, capricious dicks."

  3. masouds says:

    Why not android?

    • jwz says:

      Because I'm not porting 366,000 lines of C code to Java.

        • jwz says:

          You let me know how that goes.

          • crowder says:

            We did it with a good chunk of the Mozilla code (the port to Android, that is) when I was there, fwiw.

            • Anonymous Coward says:

              Oh My God. He's mentioning Mozilla around JWZ.

              Where's that gif of Michael Jackson eating popcorn when you need it?

          • Zac Bowling says:

            I wouldn't mind if the source for the iOS version is up in my free time. I work for Apportable and with our toolkit, we can usually port an iOS app to Android relatively fast (far faster then going the Java route). We did it by porting most of Cocoa (Foundation, CF, libdispatch, libkern, the ObjC runtime, and some of UIKit) and clang to compile to run under the NDK on Android. We actually share a similar stack to Mozilla Fennec. A bunch of the top games on Android are actually using our stack and running the same exact C\C++\ObjC under the hood as they run on iOS. The biggest problem for XScreenSaver is converting things for all the various texture compressions (on Android its a good mix) and that many devices don't support OpenGLES2 so it might be a little work.

            • jwz says:

              That sounds like a reasonable approach! The iOS port of XScreenSaver uses OpenGLES 1. If you get something working, let me know... I don't own and don't plan to own any Android devices, because frankly I think it sucks. Beyond that, a few years ago, I tried to install a dev kit to play around with it, and it was such a Linux-in-1995-level horror show that I never tried again.

              • Zac Bowling says:

                Yeah, I'm not a fan of what Android considers "native". :-) I have no problem with Java but I can't be nearly as productive in it. The newer devices are not so bad though. The hardware and the user experience is dramatically better then 2 years ago. I can actually say I do like my Nexus 7 tablet over my iPad now though which is a first for me with any Android device. I'm torn because I like philosophy of Android but I prefer the iOS stack.

              • Zac Bowling says:

                and on android, it could also be an actual screensaver.. or even a live desktop or lock screen (on some devices) instead of just an app.

              • Zac Bowling says:

                So it compiles. I have to change some stuff to get your table view selection to load in our stuff. Fairly painless. It might actually be better to change the entire build to just build each screensaver as a separate APK. Then we can hook into lock screen and idle screen APIs from different OEMs (no universal API there but it's fairly painless). A few bugs with different phones but the high end ones work.

                • avogadro says:

                  who the hell is this guy? gets an idea at 3am. follows through by noon. doesn't he realize we don't live in that world anymore?

                • jwz says:

                  Wow, I'm amazed... It's pretty trivial to build them as separate apps. My original design had the just listing the set of .saver bundles in its Plugins directory and loading them as needed, but it turns out that you can never dynamically load code on iOS, even from within your own app ("the calls are coming from inside the house!") still, I think having 200+ distinct items to manage would be a mistake. I think it ought to be one app with a currently-selected mode, even if it's running in some wallpapery mode.

      • Eric TF Bat says:

        Oh, Java's just like C! You just prefix every function header with public static virtual abstract bugridden slow boring ugly, do a quick search and replace on your comments so that the out-of-date ones with no context end up in the generated documentation, delete any functionality that does anything useful, and you're set!

        Hmmmm... I suppose porting to Clojure instead is out of the question...?

  4. Fjölnir Ásgeirsson says:

    Can't you just call it XNotAScreensaver?

  5. aard says:

    You are going about this all wrong.

    I say you submit each hack as a separate app. Let them put that in their review pipe and smoke it.

    • jwz says:

      I don't want 200+ separate apps on my phone and neither does anybody else.

      That's it, I'm getting out the ban-stick. Next stupid non-suggestion permanently loses commenting privileges.

  6. Kevin says:

    Hail Mary e-mail to Tim Cook? Apparently sometimes it works.

    • jwz says:

      Couldn't hurt, I guess. Sent.

      • Andrew says:

        Only solutions I can think of that might work are:

        a) some sort of publicity campaign - "Free XScreensaver" - if Apple gets enough public flack, they might decide it's worth it to make the noise go away by letting XScreensaver through
        b) letter to CEO (which you've done)
        c) contact with 1 or more Apple insiders who have pull (your guess is better than mine)

  7. Do I seriously know nobody who has any inside pull with these asshats?

    No. Seriously. You don't.

    You might not see it, but the reviewer this time handed you the answer on a silver platter. Just get rid of the word screensaver. Call it XSeenRaver. Or JWZs Trip Toy. Or anything else.

    • jwz says:

      That is not its name.

      How would you like it if someone told you to change your name to Beater Peerman -- or anything else -- for some stupid-assed non-reason? Try to imagine how amenable to that you would feel.

      • I would be quite annoyed, especially if it was a requirement for me to accomplish some other related action that I desired. You have my sympathy.

        It doesn't make my advice any different though.

      • Chris Jones says:

        If I was going to wear my pedant hat (not the one in my profile pic, that's my fun hat), I might point out two things:

        * An app that plays xscreensaver hacks without any kind of idle session activation, isn't a screensaver, it's a player of hacks, so calling it "xhacks" or something like that, doesn't seem entirely inappropriate. It's your project though, you are entirely justified in feeling like they're stealing your children.
        * If they will approve the app with a name that doesn't contain "xscreensaver", but will approve it with that as one of the keywords, people should still be able to find it when they search.

        • Chris Jones says:

          (I mention the keyword angle because they are typically not displayed to users, so might be a way to squeak past the apparent ruling).

  8. Greg says:

    Maciej Stachowiak?

  9. Different Jamie says:

    This is what happens when companies own the platform. Stupidity ensues.

    Full disclosure: I'm typing this on an iPad. I think this also needs a grim, meathook future tag.

  10. deathdrone says:

    Hi jwz.

    I agree with you 100%. Your app is totally cool, the name is completely appropriate and their decision is misguided and incoherent. Apple is losing share-holder value over this, to be sure.

    "Throwing your hands up in disgust and despair" is the course I personally would choose, but you seem strangely averse to that. And I'm sorry to say, but using your god-like reputation to crush some paper-pushing insect from above for offending you seems… not very likely. Media smear campaign? Over a bouncing cow? Um.

    Assuming your goal is to actually get the app distributed, as opposed to putting bullets in the heads of corporate automatons, then I think the best course of action is to just change the damn name.

    Maybe call it… MusicMate? Uh. LSDisplay? TrippyPic? BounceBounce? DNA Dance? Till The Cows Come Home? Market it as something that musicians put on their ipads at shows? Maybe even add some simple code to one or two of the savers that responds to audio input/output, to give it more of a music visualization aspect? Something people look at while listening to music on the plane? iOS devices spend all of their time either in your pocket or in your hands, so the whole "in the background being pretty" isn't really a use-case like it is for PCs. They're either in the foreground or completely out of sight. It's more something that you look at to trip yourself out, and there's always music playing when you wanna trip, right? I dunno. Swallow your ego and change the name, imo. When you feel yourself start to rage at paper-pushers, just snort another line off your girlfriend's tits and enjoy being rich.

    Random aside… for reasons I can't remember, I decided to mentally rank the "best programmers in the world" a few days ago. I decided you were in second place. Linus #1, obviously.

    (Dude, wouldn't it be awesome if bouncing cow pulsated and wobbled in time with the dubstep blasting through my headphones?! Maybe hot chicks would see me being all awesome with my pulsating cow and they would tap me on the shoulder to ask me about it, score. DubstepCow plz)

    (In fact, maybe the music visualization aspect of it could be implemented by a single distorting opengl sequence that distorts / waves / shakes ALL of the savers in a unified way? that actually seems like a pretty simple method of turning it into a music visualizer without having to modify each saver individually)

    (oh, hey, i'm still looking for a job in the area, want me to implement this for you? email me and let's talk money)

    • deathdrone says:

      I read some of the comments in your last post and was a bit surprised. Some of the posters themselves actually seemed misled by the name - they seemed to think your app would play automatically while the phone was idling (perhaps even change its lock/unlock behavior to be more colorful). If readers of your fine blog can be confused about what the app does, even after reading these posts, then perhaps the name actually is pretty damn confusing?

      I have a theory. Perhaps the hyper-sensitivity towards "misleading names" is actually well-founded here, from a maximize-profit perspective? Anything that causes users to contact customer service and say "this app doesn't do what it says it does! Give me my money back! I'm calling my bank and telling them to halt the transaction!" makes these reviewers flee in terror… and possibly with good reason? Perhaps in this strange world of paid software, the primary point of these names and descriptions is no longer "honor the traditions and struggles of the past" or whatever. The point is now simply "minimize the odds of a customer service or bank complaint as much as humanly possible" and everything is nearly irrelevant, maybe? Do banks charge companies a shitload for cancelled transactions? I have no idea.

      • deathdrone says:

        In fact, I wouldn't be too surprised if these reviewers actually get negative marks on their yearly performance reviews based on how many customer service complaints their apps get. Poor Tony-the-paper-pusher is having trouble making rent this month, and it's all because of you and your name-quibbling nerd rage. =( You monster.

  11. Frode M says:

    If you put "XScreenSaver" into the keyword field in the app description page, it should show up for people searching for it even if it's called something else (whether or not this is a grounds for rejection, I wouldn't know).

    • jwz says:

      Jesus Fucking Christ, learn to read. They are demanding that the words "screen saver" not be present.

      • John Goering says:

        As far as I see it, however, they're saying not present in your "content", i.e. your title and your app description. Putting it in as a meta keyword should actually work to get people to find it in the app store when they search for XScreenSaver. So that takes care of objection B.

        But yes, it would still make you a surrender monkey, but at least you'd be a surrender monkey whose work didn't go to waste.
        And yes, it still makes no sense to call it anything else. But when did Apple's app store rejection rules ever make sense?

      • HowToRead says:


        That message does not necessarily say to to remove all occurences of the words "screen" or "saver", does it?
        Revise any content referring to "screensaver" so that it is clear to users that this application won't be a screensaver for their iOS device?

        Please be gentle / Best of luck.

      • Kevin Pulo says:

        Not quite. They are complaining that the title makes it sound like it's a screensaver. Probably because "screen" and "saver" are the only actual words in it.

        An alternate approach might be to present the app to Apple as something like "Desktop XScreenSaver Previewer", with a description along the lines of "If you have XScreenSaver installed on your desktop or laptop computer, this App shows you what it would look like." It's now clear that the app isn't a screensaver - merely a "preview" of a desktop one - and you'd get to keep "XScreenSaver" in the title.

        Or maybe "Desktop XScreenSaver Simulator". The extreme case would be to add some way of controlling a remote XScreenSaver session (yeah, I know), and then portray the app as "Desktop XScreenSaver Remote Control", whose primary purpose is exactly that, but also "just so happens" to have a "Preview" button that runs the hack locally on the device. That's a fair amount of work, though.

        As I see it, this isn't being a surrender-monkey, just gaming their stupid rules.

  12. TLDR says:

    Unfortunately, "remove or revise any content referring to "screensaver" " does not guarantee a resolution, but is likely the reviewer shoehorning their grievance into the compliance Guideline. Thankfully(?) there's no reference to screensavers, or so-called misleading of users, in 10.4 at all.

    Terrible Lazyweb points for appeal:

    I. "alternate desktop/home screen environment"
    State how XScreenSaver does not offer:
    a) any attempt to circumvent the home screen
    b) any attempt to replace the home screen
    c) any competing home screen functionality

    II. "simulate multi-app widget experiences"
    State how XScreenSaver is not:
    a) the home screen (again)
    b) a desktop (again)
    c) a dashboard
    d) a dock
    e) an iframe

    ... nor anything that would launch widgets, nor simulate that functionality.

    If there's a submission cheat-sheet that does blacklist all mentions of screensavers then that's on Apple to amend their shitty sections explicitly. You can't follow programming guidelines that are not communicated (Spoiler: yes, most publishers pull the same trick anyway because the process is lucrative).

    And what the fuck ever about functionality not being possible - that's why somebody made an app.

  13. NelC says:

    How does it feel to know that you have absolutely no power over petty bureaucracy? Oh, wait, don't answer that, I already know.

    Given — eventually, when you're tired of being angry at the men in grey — that you can't get everything you want, what is the thing that you can live with? Getting your hack published on the iStore with whatever compromise is necessary, or not getting it published by not being a 'surrender-monkey'?

    If you get your foot in the door by publishing it under a different name, then you can work on finding someone of influence to bribe persuade to allow a change of name, the difference from your present strategy being that it will be available.

  14. deathdrone says:

    I really don't think you surrender-monkeys are giving this situation the respect that it deserves. No one fucks with Bouncing Cow. This calls for justice.

    Only one question remains. How far are we willing to take this?

    • Ronald Pottol says:

      Have you seen what he has gone through with the DNA Lounge? The answer is plain. Also, apple needs a new Messiah.

  15. deathdrone says:

    Can you toss me the source for the iOS port too, please? I can't stop thinking about dubstep cow music visualizer... I think there might actually be some money to be made here.

    It'll look cool on my resume, at least. I can show up to interviews with an ipad and an amp and be like "hey, I made this!" and start blasting music while the cow pulsates and wobbles like an incomprehensible alien god of terror dreams while I fucking stand up on the conference table and rock out, fuck yeah. That'll be nice, then I'll have a job.

    • Different Jamie says:

      If you can't find the source, you are incapable of modifying it for your personal work/music tastes. Might I suggest instead a job with your local coffee shop and some acid? That would lead to an outcome that should make you just as happy.

      I know, don't feed, but twitchy dude is getting annoying.

  16. Neal C says:

    I've been puzzling over this app since you started mentioning it, knowing that traditional screensavers wouldn't allowed on the store, assuming you were going to take the Cydia jailbreak-store route for some reason.

    I take it it just shows screensaver-like stuff on-screen when requested, or is there something more to it?

    If you mention "BASED ON THE LEGENDARY XSCREENSAVER" at the top of the description-blurb of a hypothetically-renamed app, would a search pick that up? Or would the word have to be in the metatag-list?

    (Another route might be to just add suffixes to the name if you're wedded to it, like Xscreensaver Player or something, but that probably wouldn't work)

  17. Howdy jwz,

    For what it's worth, I've written the dev-relations team to suggest that they give you a phone call. I have had a similar tangle with Apple myself -- they rejected my application to register my consulting company for a developer account because its name contains the substring /apple/. After I pointed out that the rule their rejection emails quoted didn't seem to disallow my case, I got a phone call from dev relations about the situation, and we had a nice chat about it.

    In my case, it didn't reverse my rejection, but at least I came out of it with a more honest and direct set of reasons for it, and it made clear the next steps I should take.

  18. I have no joke, I just like saying "apple dicks".

  19. jwz says:

    Man, the banhammer is really dripping with gore and muck this morning.

  20. Jack says:

    Ask pmarca if he knows anyone, pmarca knows you have a hard life...

    • jwz says:

      Marca doesn't answer my email any more.

      I guess Hacker News explains where all the trolls came from this morning. It's Slashdot but with more self-importance!

  21. Edouard says:

    Can you pitch it as a preview of the desktop xscreensaver? Like "Now you can trial the screensaver effects from the world famous xscreensaver that is installed on millions of desktop world wide! See what each screensaver is like on your mobile device before choosing them on your Macintosh!".

    Umm, also it would be cool to be able to set the screensaver on my Desktop from my iPad. You know, with iCloud.

    (Am serious, not trying to make a joke. Please don't ban.)

  22. David Konerding says:

    I wrote a few OpenGL hacks for xscreensaver from my misbegotten youth, so I've got some skin in the game. Apple has made its position clear, and they are based on core policy. You've made your position clear, and it's based on your core policy. Since those positions are incompatible, somebody has to give.

    You said your only remaining option is: find somebody with pull over the apps core policy. The apps core policy was decided by Steve Jobs and some senior engineering directors he respected with a specific intent of making money from selling apps for as long as possible; the reasons the reviewers cite are based on what jobs and the engdirectors reasoned would enable them to do that. It's not hard to take the externally available data about Steve Jobs's thought process and come up with a logical (if nonsensible) reason why they would not want the word "screensaver" in an app name.

    So the clear answer is to gain influence over the apps core policy and make it align with your attitude. You ask for others to do that, but that's not going to work. You need to own Apple. This is not as hard as you may think; a reasonably intelligent software engineer with credibility can join a company and start influencing its highest-level decisions within 3 years, and be the person making those decisions in 5. Yes, you'll have to deal with people you don't like, make software architecture decisions that make you vomit, and you'll have to tamp down your urge to respond the way you do when you get angry at dumb people.

    Ulimately, smart people who want things find rational ways to achieve them. This could be a major win for you: it's clear you respect's Apple's hardware and software products, and in this role, you would be the final decider. It's up to you: do you want to sell sugar water to bridge&tunnel crowd for the rest of your life?

    • jwz says:

      Very droll, but:


      I can say without hesitation that even at its awfulest, it beats working for someone else, hands down.

      • Sheilagh says:

        But you'd OWN APPLE! That conquest couldn't be more painful than fighting the San Francisco petty bureaucrats, could it? You've taken on impossible, agony-inducing challenges and won! Who else could succeed at this? You're our only hope.

        It's the next logical (dub)step....

        • Owen says:

          A multinational corporation is just going to hand over a controlling interest why?

          My youngun, sometimes things are just fucked and that's as good as it gets. Reading between the lines, they don't want his app in their store. Period. My guess is even if he changes the name, they'll just find another excuse.

          And if this is how AAPL is on the outside, I can't imagine the stench on the inside. Yes, I would sell beer and pizza too.

  23. BillB says:

    Just figured I'd mention there is an app in the android market called XScreensaver that is a port. The description claims "the collection is small". It costs $0.99 and is at