views:

163

answers:

5

I found this previous question about Cocoa projects, but I wanted to know if it's the same for iPhone projects.

+1  A: 

As far as I know, the same responses there apply to iPhone development as well. In my projects, the only files I keep under SVN's control are the source files, any resources (images, .XIBs, audio, etc.), and the .xcodeproj file.

joshbuhler
A: 

Yes. I use the exact same .gitignore file for iPhone OS projects as I do for Mac OS projects.

Mark Thalman
A: 

It may be a good idea to version control provisioning profiles. Especially for an ad-hoc beta test profile, you'll need to update it every time you add a new beta tester, and having a history of that seems like a good idea.

Daniel Dickison
A: 

Actually there is something I would say you should version control that you would normally not - the final application bundle and dsym file, both under build. However, you only need to archive these when you release either an ad-hoc or distribution build for the store - so I'd leave build in the ignore file, but have somewhere you can copy these files to check them in for a distribution and tag them along with the source.

You'll probably want to compress the app bundle before placing it in this save directory

You need these two files in order to be able to symbolicate crash logs sent to you by either beta testers, or users of the app from the app store. A meaningful stack trace of a crash is priceless!

Kendall Helmstetter Gelner
A: 

If you're planning on updating the app over time in addition to project sources and media you may also want to put the following under version control:

  • Signing certificates for app (and/or mobileprovision files).
  • The final version of the binary app (zipped) submitted to Appstore.
  • Binary.dSYM file for each revision (for post-release crash symbolicating).
  • Screenshots/icons/text file of description for app as submitted to Appstore.

Before beta releases you may also want to put mobileprovision files as well as a snapshot of the device list from the Developer portal for that version just so you can go back in time and figure out who got what release. If you're really hardcore you can also keep emails submitted by beta testers so you can keep it all in one place and go back and double-check against bug reports.

Ramin