About a month ago, I discovered Apple had imposed new limitations on the free Apple Developer account. This limits the period that an app can run on your phone to 7 days (due to Provisioning Profiles) and the number of changes you can make to the project (not the source code, but Capabilities like App Groups).
These are poorly documented by Apple and not listed in Apple Developer pages either...
I didn't even understand these terms until I encountered vague errors and realized the app stopped running on my phone!
- Provisioning Profiles - used to be valid for 90 days, but is now reduced to 7 days, starting from the time the profile was created. This means that after 7 days, the app on your phone will simply stop working.
- App ID Changes - limited to 10 changes every 7 days. I tried to add App Groups and encountered a vague error that was quite unrelated to what I was doing! In my case, I found it was impossible to change App Groups once created and I got the error "Unable to add App ID because the '10' App ID limit in '7' days has been exceeded." The error cannot be fixed by clicking on Fix and results in another vague message "Failed to code sign..."
To get a new certificate to extend the valid period and fix the App Group error, go to Xcode > Preference > Accounts and click View Details.... You'll see the Provisioning Profile and expiry dates, so click Download All and you'll get a completely new set of certs. Make a note of the dates! Then you can build and run on your device as usual.
If you log in to the Apple Developer site with a free account, you will not be able to access Certificates, IDs & Profiles or any other sections available to paid developers.
Apple, this is not friendly to developers! One week is absolutely inane and insane, at least make it a month!
I was hoping the recent WWDC 2016 would address some of these shortfalls, and expand the feature set that developers can access for free, but Apple seems to often backtrack. We, users and developers, are beholden to Apple's whims and facies. Serves us right for supporting a closed ecosystem, compared to what's available with Windows and Android...