How it took my simple app more than 2 months to get approved on the App Store

I’ve always loved Apple Music, even before it existed it was the music service of my dreams. It’s like having unlimited iTunes Store credits (and I love iTunes). But I always still using Spotify (free) sometimes to listen to a few playlists with some 400 songs, and I wasn’t going to transfer them to Apple Music because:

  1. Before iOS 9.3 you couldn't add songs to a playlist without adding it to your main library (and I'm very serious about keeping my library organized)
  2. Fuck it's 400 songs

But then 9.3 came and with it I could finally add songs to a playlist while keeping my main library clean. And it came with an Apple Music API too! So I went app hunting, and every app I found that offered a Spotify -> Apple Music feature had the same problem: all the songs from the playlist were also added to my library. Urgh.

Well that led me to Xcode -> File -> New -> Project. At first I was having some problems doing what I wanted (filed rdar://26408683), but someone on Stack Overflow had a workaround for my issue. And it worked. Next I asked my friend Bruno (who also curates great playlists for those who like Indie/Alternative music, which were algo a great motivation to make this app: Indiecações) to help design this simple app to import Spotify playlists to Apple Music. And so he did and a couple of days later jMusic was born. Here a video of it in action:

The day was June 3th, I submitted it for review (my first project using the awesome Fastlane). The average review time at that time 1.97 days according to appreviewtimes.com. And on June 4th, a little more than 24 hours later, the status changed to In Review. And I was like "Great!! It should be in the store by tomorrow". But boy was I wrong…

It came June 5th.

6th.

7th.

8th.

9th.

Nothing. Still in review. I sent an email asking if everything was ok and if there was any problems and I got this response:

Ok. So I just waited.

10th. Jesus I was on my way to San Francisco for WWDC and still nothing.

11th.

12th.

13th.

14th. Ok. FINALLY an update. Yeah… rejected. For a long list of resons. Some of them:

Legal — 5.2.1
Your app includes protected album cover artworks in app icons, screenshots or previews without the necessary authorization.
We’ve attached screenshot(s) for your reference.
Pursuant to your agreement with Apple, you represent and warrant that your application does not infringe the rights of another party, and that you are responsible for any liability to Apple because of a claim that your application infringes another party’s rights. Moreover, we may reject or remove your application for any reason, at our sole discretion.
Additionally,
Design — 4.1
Your app or its metadata contains misleading content. Specifically, your app name is leveraging the app Spotify and Apple Music.
Next Steps
Please remove or revise any misleading content in your app and its metadata.
Also,
Information Needed
We began the review of your app but are not able to continue because we need a demo account to fully assess your app features. Specifically, we need access to a Spotify and Apple Music demo account.
Please provide demo account details, including passwords, in the App Review Information section for your app in iTunes Connect. Please ensure that the information you provide includes any data necessary to demonstrate the functionality of your app features.

Fine, I was using some album covers on the screenshots and app preview (the same ones you see on the video above). I get it, I removed them. But oh did you have to take TEN DAYS to just reject the metadata of the app?

I didn't understand much the part about the name and the part where they needed a DEMO APPLE MUSIC ACCOUNT to continue. Oh god. First of all: it's a paid service and it's not like I'm gonna share my iCloud account with them. And they're Apple, certainly they should have a demo account to test apps using native iOS APIs? And I could create a demo Spotify account for them, but they sent me this screenshot:

It just shows that they already have a Spotify account, with playlists even. Why were they asking me for info they don't need (Spotify) and info I can't provide (Apple Music)?

I was taking a break between sessions at WWDC when the app was rejected, so I immediately made an appointment with the app review team there to try to figure out some of this stuff. Met with some very nice people. I explained about the app and the whole situation to them. About the name of the app, they said it couldn't have the name of an Apple product/service, and suggested I rename it to jMusic for Spotify. Ok, and so I did. And then about asking for a demo Apple Music account… their expression of "???" was great. They asked for the Apple ID of the app, did some magic on their Mac and said I didn't have to worry about that, they would find a way to get a demo Apple Music account (as expected because c'mon YOU'RE APPLE).

I made the necessary changed and sent it back to review. And then on June 17… REJECTED. Here we go…

Design — 4.0
We noticed that the user is taken to Safari to sign in or register for an account, which provides a poor user experience.
Next Steps
Please revise your app to enable users to sign in or register for an account in the app.
We recommend implementing the Safari View Controller API to display web content within your app. The Safari View Controller allows the display of a URL and inspection of the certificate from an embedded browser in an app so that customers can verify the webpage URL and SSL certificate to confirm they are entering their sign in credentials into a legitimate page.
Resources
For additional information on the Safari View Controller API, please see the webpage, What’s New in Safari.
Additionally,
Performance — 2.1
We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 9.3.2 on Wi-Fi.
Specifically, with a valid Apple Music subscription the app still shows an error message appears that states an Apple Music subscription is required.

Puzzling that first one. The app does use Safari View Controller. And the Apple Music bug was also puzzling. This was my response:

The app already implements the Safari View Controller, if the user doesn’t have the Spotify app install. Otherwise, the Spotify app is opened.
About the other bug, I sent the app to 4 people with Apple Music subscriptions in different countries, including US, and they had no problem with it. Please ensure you have allowed jMusic to access Apple Music in the settings. Also, please make sure iCloud Music Library is enabled on the device.

(iCloud Music Library is required because without I can't add songs from the cloud to the user's library)

On June 21st:

From Apple
Hello,
Thank you for your response.
We apologize for the delay. Your application is still in review but is requiring additional time. We will provide further status as soon as we are able. Thank you for your continued patience.
Best regards,
App Store Review

And then on June 22nd:

From Apple
Hello,
Thank you for your patience during the review process. Upon further review, we still encountered the previously reported 2.1.0 and 4.0.0 issues.
For the 2.1.0 issue, after logging in with a valid Apple Music subscription and granting jMusic permission to access Apple Music, an error message still appears stating that an Apple Music subscription is required when trying to transfer the user’s Spotify playlist.
We’ve attached screenshot(s) for your reference.
It would be appropriate to run your app on a device to identify the issue, then revise and resubmit your app for review.
Additionally, we still noticed that users are taken to mobile Safari to sign in to their Spotify account, which is not appropriate.
It would be appropriate implement the Safari View Controller API to display web content within your app.
Once these issues are resolved, we can continue with the review. We look forward to your resubmission.
Best regards,
App Store Review

They sent me a bunch of screenshots, showing the error in the app ("You need an Apple Music subscription to use jMusic"), showing they had Apple Music etc but did not confirm to me if iCloud Music Library was enabled. Also they continue saying I need to implement the Safari View Controller WHICH ALREADY IS. So I replied:

Did you check if you have iCloud Music Library turned on? (Settings -> Music). That is required for the app to work.
And I did not see a screenshot of Safari. Could you send one of the Spotify authentication page open in Safari? Like mentioned before, the app already implements the Safari View Controller if the user doesn’t have the Spotify app installed. Otherwise, the Spotify app is opened.

On June 25th:

From Apple
Hello,
Thank you for your response. We apologize for the delay. Your application is still in review but is requiring additional time. We will provide further status as soon as we are able. Thank you for your continued patience.
Best regards,
App Store Review

And then on June 27th:

From Apple
Hello,
Thank you for your patience during the review process. Upon further review, we still encountered the previously reported 2.1.0 and 4.0.0 issues.
For the 2.1.0 issue, after logging in with a valid Apple Music subscription and granting all the required permissions, an error message still appears stating that an Apple Music subscription is required when trying to transfer the user’s Spotify playlist.
It would be appropriate to run your app on a device to identify the issue, then revise and resubmit your app for review.
Additionally, we still noticed that users are exited to mobile Safari and the Spotify app to sign in to their Spotify account, which is not appropriate.
It would be appropriate implement the Safari View Controller API to display web content within your app.
Once these issues are resolved, we can continue with the review. We look forward to your resubmission.

Remember I asked SPECIFICALLY about iCloud Music Library? Yeah, they just said "…granting all required permissions" but nothing about iCloud Music Library. And they keep insisting on the app not using the Safari View Controller, but this time finally they sent me a screenshot of that:

Yeah… you read it right, they were saying I need to use the Safari View Controller, and then they send me this screenshot which is supposed to be an example of my not using Safari View Controller. OH GOOD GOD APPLE. I was so fucking mad when I saw this. Look at it. That's the Safari View Controller. The "Done" button on the left, the Safari button on the right, the fact that they never left the app, the fact that it was just like any other UINavigationController transition to get there… they don't know what the hell they're talking about, apparently. But ok, I replied…

Ok, regarding 2.1.0, just confirm to me if, SPECIFICALLY, iCloud Music Library is enabled on the device. You can go to Settings -> Music to check if >>iCloud Music Library<< is enabled. Please write to me specifically is this is enabled.
As to the Safari View Controller API, that is implemented. You can see in the screenshot you sent me there’s a done button in the top left corner, and the Safari logo on to top right corner. That identifies the Safari View Controller. You can open the app swticher and confirm you are still inside my app and not im mobile Safari. The user did not exit my app.

And on June 29th:

Hello,
Thank you again for replying. You may feel more comfortable addressing this issue by phone. We have scheduled a call follow up with an Apple representative who should be contacting you within 3 business days.
Best regards,
App Store Review

No Apple I will not feel more comfortable addressing this issue by phone if you could just ANSWER ME ONE SIMPLE THING (sorry, I get mad).

But anyway, on July 1st I get a call from Jessica, from App Review. Basically what she does is tell me what I already now: "hey your app opens mobile safari you can't. Hey your app has this bug". So I explained to her how the app does use Safari View Controller. And repeated like a million times: please make sure iCloud Music Library is enabled. Please. iCloud Music Library. Settings -> Music. Don't forget iCloud Music Library. Please check. Don't forget. PLEASE. And then she said "ok I'll pass that info to the review team".

I don't get how a phone call is gonna solve this. It's one thing if I could talk to the reviewer but no, I had to talk to Jessica who liked to make sure I understood that she does not review the app. But ok, I waited. And then later that day she called me back, saying that they couldn't accept the app beucase it opened the Spotify app, if it was installed, to log in the user. I mean… WHAT? WHY THE HELL can't I just send the user to a native app where they'll click a button and come back to my app instead of sending them to a web page, where they'd have to enter their login credentials for something they are already logged in? But anyway, she also said that the team was working on testing the Apple Music part of the app with the instructions I provided, so I just hoped they would forget about that detail.

That was July 1st. I heard nothing from Apple until July 19th, when I got a phone call from Jessica saying they "didn't forget about me". And that was it until July 25th. Another phone call from Jessica saying that even following all the instructions I provided the reviewer got the same error saying they needed an Apple Music subscription. I was still sure the problem was iCloud Music Library, so I got tired of arguing. I opened the project and added an error message specific to what I thought was their situation:

It seems like you don’t have iCloud Music Library turned on. jMusic needs it so we can add music to your library. Go to Settings -> Music and switch on iCloud Music Library. Then restart the app and we’ll try again.

Seriously, that was the only change to the app.

And on July 27th it was back waiting for review. One day later: rejected. But for a different reason…

From Apple
2. 3 PERFORMANCE: ACCURATE METADATA
Performance — 2.3
We noticed that your app’s creating playlist activity indicator window includes the following information, which is not relevant to the app’s content and functionality:
- “Apple Music can be a bit slow”
We’ve attached screenshot(s) for your reference.

Haha. Yeah. They got past the Apple Music error. Really, Apple? All it took was me changing the error alert so you FINALLY do what I’ve been asking you for a month? I would totally understand and agree if the app was rejected because the error message was not clear (in this case it really wasn’t), but that wasn’t it, they just really couldn’t follow my instructions like they said they did. They could say “hey ok turning on iCloud Music Library does work. Just update the error message to make that clearer to the user and we’ll approve your app”. But that was too hard, apparently… and hey, looks like they really did forget the whole "you can't open the Spotify app" thing.

About the current rejection: the “Apple Music can be a bit slow” message was because of the bug in the API (a bug Apple is aware of, I talked to one of the Apple Music engineers about it at WWDC and he said he knew about it should be fixed in iOS 10) and to workaround it I had to wait 5 seconds after creating the playlist (see http://stackoverflow.com/questions/36902854/error-when-using-mpmediaplaylist-additemwithproductidcompletionhandler). I just changed the alert to "It should take about 5 seconds" and sent it back to review, on July 28th.

You'd think it wouldn't take long now. You'd be wrong. It spent FIFTEEN DAYS “In Review”. But after 70 days since the first submission, it's finally approved. On the same day I called Jessica to complain and she just said there's nothing to report. I wonder if it's related… Anyway, you can download it now.

The history of the app's status changes in iTunes Connect

Before jMusic, I could say I was very happy with the app review process in general. Even back when it took a week to get it reviewed, it was predictable (kinda). All rejections were quickly resolved. This whole long process is just something I didn't expect for an extremely simple 2 day project. Even now that it's approved I still wonder what the hell happened. Why couldn't they follow my simple instructions? Why did they ignore my questions? Why are there people on the app review team that can't recognize the Safari View Controller and reject your app for not using it even though you're using it? Why are there people on the app review team asking me for a DEMO APPLE MUSIC ACCOUNT? And finally, why such loooong review times? Writing this now makes me realize how much went wrong. I'd love some transprency from Apple on this. I guess I'll never know… but I am happy it's all over and settled.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.