How would I go about creating an Xcode project for iOS that can be compiled by anyone?
What I am trying to do, is to write a simple app and send the whole thing (just archive the whole project folder) to a friend so that he can compile it and test it on his own device.
Both of us are registered separately as individual iOS developers; we can both download example projects and run them successfully; and I can run my app on my iPad. However, when I send the archive to my colleague, he can't test it (he says it builds but does not attempt to install or run on the device, only complaining "valid signing identity not found").
Clearly I am not understanding something in the process about how development profiles work. There must surely be some way to produce a project that can be compiled by anyone, and doesn't require my profile to be on the machine, or example projects wouldn't be able to compile? (And why should a project in source-only form even need a profile attached to it?)
Am I understanding correctly that 1) I've somehow bundled my personal developer information into the source-only project, and this is stopping it from being built by another unconnected developer, and 2) that if so, it is actually possible to share projects in this way? How would I go about separating the project from the profile?
I am dimly aware that this is also the "wrong" way to share projects: I am open to suggestions for changing that too, but still want to understand what I'm doing wrong, and where I've missed something that must be obvious in the provisioning process.
How would I go about creating an Xcode project for iOS that can be compiled by anyone?
You'd provide the project file, resources, and code just as you would for projects on other platforms. Don't provide your developer provision profile or keys -- each person who wants to build the project will have to supply those on his or her own.
However, when I send the archive to my colleague, he can't test it (he says it builds but does not attempt to install or run on the device, only complaining "valid signing identity not found").
He'll need to supply his own developer profile and key.
And why should a project in source-only form even need a profile attached to it?
Because the iOS devices won't execute code that's not properly signed.
How would I go about separating the project from the profile?
Nothing to do here -- your provision profile and keys are stored in your keychain, not in the project itself.
I am dimly aware that this is also the "wrong" way to share projects
It's really not "wrong," but it's not the easiest way to go if you're going to be sharing frequently. There are services out there that provide cheap or free version control for small groups or open source projects, and sharing that way is a lot easier than mailing copies of the project back and forth.
It's not related with OpenSource project, it's just that your partner is trying to compile with your certificate. Go to project settings -> Build Settings, look for Code Signing Identity under Code Signing section, and change it to iPhone Developer. This way, XCode will select the signing identity that matches the App ID. If that doesn't work, make sure you have an eligible Provisioning Profile, and go to Window -> Organizer and check the Developer Profile and Provisioning Profiles sections.
On a side note, to share the project between people, I'd recommend you to use a Control Version System, like Subversion or Github. There are plenty of free repositories for OpenSource project.
Tell me if you need further info.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With