• Niv BP

This small thing can render your extensions useless

TL;DR - see my SO post

A few weeks ago I promoted my app on Reddit’s self promotion Saturday. I received a comment that "the widget is failing to load on 13.1 beta".

At the time I thought it was an issue with the beta, but when I upgraded to the GM the issue persisted.

When investigating the issue I found out that this was also happening in the Notification extension.

I started by removing every connection between the Today extension and other files (database, configuration). That did not work.

I added a new Today extension, didn’t change anything in the boilerplate implementation, but that too showed the infamous “unable to load” message.

I created a new blank project, added a today extension and that worked fine.

The next few days I spent comparing all the project settings between my app project and the blank project. There were a few differences but nothing that fixed the issue.

The next step was to check if this happens on previous versions. Opened TestFlight and installed the first version - OMG it works.

Now that I had a version that worked and a version that did not work I used Xcode's built in File Merge (Xcode -> Open Developer Tool) to compare the files between the projects.

Going thru the differences nothing popped out. There was one file that did catch my eye.

How many of you keep a “what’s new” file? I’d guess most of you do. Well, I use a versions file for that and I added it to my project. Once I removed the file, the extension worked.

I quickly made a new branch, fixed the issue, made small adjustments due to ios13 sdk changes and submitted a new version to the App Store.

After some testing I found that the name of the file is what caused the issue.

So, don’t name your versions file “Versions”