Doesn't this give the option for someone else to package it together, give it a new name, and then offer it for free on the App Store? If so, that could be a way around.
This I never understood, GPL doesn't allow you to impose the restrictions the app store requires, right?
Can't you just supply every user with a second copy of the software, which they are allowed to use under the GPL freedoms?
Specifically, you get one copy from the app store that is restricted by Apple's license. You cannot install it on other devices, it doesn't give you the right to the source code, etc.. Apple is satisfied.
Then you get another copy from the developer. It is compiled, but unsigned. You also get the source. You are free to install it on other devices [1]. GPL is satisfied because the person who recieved the first binary gets a binary they can run, and redistribute (although it is cumbersome and they have to sign it etc. to install - but again [1]). They also get the source.
Wouldn't this work?
[1] If this other devices allows it technically and legally - this restriction always applies. This is also the case if you have a GPL application that needs features from Windows Professional, but you only have a Home license. That doesn't mean you can't distribute the app under GPL.
You can do that if you're the copyright owner of all the code (or have some kind of CLA granting your licensing rights). Then you can distribute the app under one license on the App Store and under the GPL somewhere else.
But if you're the "someone else" who just got the code with the GPL license from the original devs, you can't redistribute it under any other license, hence the impossibility of putting it on the App Store.
Thats not what I mean. You are not the copyright owner, you take it (under GPL terms) and upload it to the App store. The uploaded version is restricted, as per Apples terms. Users do not yet have the rights you need to grant them according to the GPL. You fulfill your obligations, granting these rights, in the next step.
Then, outside of the App store, you give everybody an additional copy. The GPL is satisfied, since the user gets to distribute the binary, and gets the source.
You are not distributing it separately under two licenses, but at the same time over two channels.
It's like you have a locked-down computer in a high security room, and I want to send you a program. "A" enforces the security of the room and while you can download stuff to the computer, you can't copy stuff from it. "G" supplies the software to me, and says I can give it to other people, as long as I allow them to have the source and pass it on under the same terms. I would say you can satisfy both at the same time by giving the customer an additional copy at the same instant, say on a USB drive.
Ah, well, with the huge caveat that IANAL, I don't think that can work here. Maybe if the only right was the access and distribution of the source, but one of the GPL Four Freedoms is "The freedom to run the program as you wish, for any purpose", and the App Store terms restrict that.