<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3527060826849081489</id><updated>2011-10-23T02:30:52.087+13:00</updated><category term='iPhone'/><category term='Build Numbers'/><category term='Versions'/><category term='info.plist'/><category term='Xcode'/><category term='Subversion'/><category term='Build Configuration'/><category term='MacOS'/><category term='Debugging'/><category term='iOS'/><category term='Apache'/><category term='iPhone OS 3.0'/><category term='Leopard'/><title type='text'>Gravitini iOS Development</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3527060826849081489.post-1943654173135402370</id><published>2010-08-16T23:00:00.032+12:00</published><updated>2010-08-16T23:42:47.752+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Build Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>NSZombies to the rescue... finding your EXC BAD ACCESS memory issue</title><content type='html'>Anyone who has developed a native application for iOS will have encountered the dreaded EXC BAD ACCESS error with zero information about what caused the crash.&lt;br /&gt;&lt;br /&gt;NSZombies catches attempts to access deallocated objects (which are the primary causes of that error) by replacing the deallocated object with a zombie.&lt;br /&gt;&lt;br /&gt;When a zombie is accessed a helpful message is logged to the console: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;message sent to deallocated instance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Take a read of &lt;a href="http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html"&gt;Finding Memory Leaks&lt;/a&gt; for instructions on how to activate NSZombieEnabled on your Debug executable.&lt;br /&gt;&lt;br /&gt;Make sure you only activate NSZombies on your Debug executable as you don't want to release an application that never frees memory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3527060826849081489-1943654173135402370?l=ios-dev.gravitini.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html' title='NSZombies to the rescue... finding your EXC BAD ACCESS memory issue'/><link rel='replies' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/1943654173135402370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ios-dev.gravitini.com/2010/08/nszombies-to-rescue-finding-your-exc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/1943654173135402370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/1943654173135402370'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/2010/08/nszombies-to-rescue-finding-your-exc.html' title='NSZombies to the rescue... finding your EXC BAD ACCESS memory issue'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3527060826849081489.post-4462197412074578064</id><published>2009-03-18T12:30:00.010+13:00</published><updated>2009-03-19T11:16:07.087+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone OS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>iPhone OS 3.0 Beta</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gravitini.com/images/iphoneos3.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 163px; height: 120px;" src="http://www.gravitini.com/images/iphoneos3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Well, I've taken the plunge and installed the iPhone OS 3.0 beta on my iPhone 3G.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;... it's a one way trip just in case you didn't read bullet point 3 of the iPhone OS 3.0 beta pre-installation advisory notes.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;I'm guessing this was a popular download as Apple's iPhone Dev Center site initially failed under the load.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Here's the cool stuff so far:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Cut Copy Paste &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#C0C0C0;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;(it works well)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Forwarding of text messages &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#C0C0C0;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;(which we had that around xmas)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Landscape for mail, notes and the new messages app &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#C0C0C0;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;(SMS++)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Global search &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#C0C0C0;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;(wish it had some filter icons eg apps only)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Synchronisation of notes &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#C0C0C0;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;(but only to Apple Mail and Mobile Me)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Most painful experience was having to reorganise my 150+ icons :-(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3527060826849081489-4462197412074578064?l=ios-dev.gravitini.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.apple.com/iphone/preview-iphone-os/' title='iPhone OS 3.0 Beta'/><link rel='replies' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/4462197412074578064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ios-dev.gravitini.com/2009/03/iphone-os-30-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/4462197412074578064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/4462197412074578064'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/2009/03/iphone-os-30-beta.html' title='iPhone OS 3.0 Beta'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3527060826849081489.post-8404722406883393437</id><published>2009-02-12T14:00:00.002+13:00</published><updated>2010-08-16T23:45:11.294+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>Using Xcode Targets for Adhoc iTunes Artwork</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;By creating multiple Xcode targets you can adjust what files are included in each target.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;eg iTunesArtwork for adhoc users or testers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;As the iTunesArtwork file only works for adhoc builds you want to exclude it from debug and release builds.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;To create an Adhoc target which includes your&amp;nbsp;iTunesArtwork&amp;nbsp;&amp;nbsp;file you need to:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Create a new Adhoc target&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Add your iTunesArtwork file to your project&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Change the target memberships for your iTunesArtwork&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Step by Step:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Duplicate the primary target (right click -&amp;gt; Duplicate)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Rename the new target to Adhoc&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Add your iTunesArtwork file to your project as described &lt;/span&gt;&lt;a href="http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/145-Publishing_Applications_for_Testing/chapter_9_section_3.html#//apple_ref/doc/uid/TP40007959-CH10-SW7" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Change the target memberships for your iTunesArtwork file to Adhoc only using:&lt;br /&gt;Select Target -&amp;gt; right click -&amp;gt; Get Info -&amp;gt; Targets&lt;br /&gt;(make sure only Adhoc is selected)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Once you've made these changes you can explore the Target build phases. The iTunesArtwork file should only appear in Copy Bundle Resources for the Adhoc target.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;It may be useful to have matching targets and configurations for each type of build eg&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Debug&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Adhoc&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Release&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;When changing the build type set both the active configuration and active target.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Other uses for multiple targets include:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Different icons for Debug / Adhoc / Release builds&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Incrementing build numbers only for Adhoc / Release builds&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3527060826849081489-8404722406883393437?l=ios-dev.gravitini.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/8404722406883393437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ios-dev.gravitini.com/2009/02/using-xcode-targets-for-adhoc-itunes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/8404722406883393437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/8404722406883393437'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/2009/02/using-xcode-targets-for-adhoc-itunes.html' title='Using Xcode Targets for Adhoc iTunes Artwork'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3527060826849081489.post-5110248705092780046</id><published>2009-02-12T11:30:00.008+13:00</published><updated>2010-08-16T23:45:43.684+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>Identifying the Current Xcode Configuration</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;The easiest way to identify the current configuration in code is by creating a preprocessor macro under your Xcode project build settings.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Step by step:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Project menu -&amp;gt; Edit Project Settings -&amp;gt; Build tab&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Select All Configurations&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Scroll down to GCC 4.0 - Preprocessing&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Add the following to Preprocessor Macros Not Used in Precompiled Headers:&lt;br /&gt;&lt;br /&gt;CONFIGURATION_$(CONFIGURATION)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;Assuming you have Debug, Adhoc and Release configurations, this will generate preprocessor macros for each configuration. ie&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;CONFIGURATION_Debug&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;CONFIGURATION_Adhoc&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;CONFIGURATION_Release&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;In your code you can now use something like:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;#ifdef CONFIGURATION_Debug&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;NSLog(@"Debug message");&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;#endif&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;#if defined (CONFIGURATION_Debug) || defined (CONFIGURATION_Adhoc)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;NSLog( @"Warning message");&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;#endif&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3527060826849081489-5110248705092780046?l=ios-dev.gravitini.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/5110248705092780046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ios-dev.gravitini.com/2009/02/identifying-current-xcode-configuration.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/5110248705092780046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/5110248705092780046'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/2009/02/identifying-current-xcode-configuration.html' title='Identifying the Current Xcode Configuration'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3527060826849081489.post-6525260468359064980</id><published>2008-12-07T23:00:00.009+13:00</published><updated>2009-02-12T12:20:45.921+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Updating Leopard's Pre-Installed Subversion</title><content type='html'>&lt;span style="font-family:lucida grande;"&gt;Here's the how to update Leopard's pre-installed copy of subversion.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;Download and install the latest universal binary from CollabNet:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;http://www.collab.net/downloads/community/includes/communitydownloads-getit-mac.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;The installer puts everything into /opt/subversion and creates symbolic links in /usr/local/bin but this doesn't disable the pre-installed copy in /usr/bin.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;You need to get adventurous:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;Create symbolic links in /usr/bin/ and /usr/lib/ to the new subversion files in /opt/subversion/bin/ and /op/subversion/lib/&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;Update your apache subversion configuration to use the new /opt/subversion/lib/svn-apache/mod_dav_svn.so&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'lucida grande';"&gt;Note: do not update libapr to 1.0.2.12 as it will cause a problem with Apache.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;br /&gt;Step by step using Terminal:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;Commit all your files and close all subversion clients eg Xcode&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;If not logged in as an admin account switch user to an admin account:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;su admin&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;Create links to the new subversion files:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ln -sf /opt/subversion/bin/svn* /usr/bin/&lt;br /&gt;sudo ln -sf /opt/subversion/lib/libsvn* /usr/lib/&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;Edit your apache2 subversion configuration file:&lt;/span&gt;&lt;span style="font-family:lucida grande;"&gt; (your location may be different)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;span style="font-family:courier new;"&gt;sudo pico /etc/apache2/other/svn.conf&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:lucida grande;"&gt;Update LoadModule to:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadModule dav_svn_module /opt/subversion/lib/svn-apache/mod_dav_svn.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3527060826849081489-6525260468359064980?l=ios-dev.gravitini.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/6525260468359064980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ios-dev.gravitini.com/2008/12/updating-leopards-pre-installed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/6525260468359064980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/6525260468359064980'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/2008/12/updating-leopards-pre-installed.html' title='Updating Leopard&apos;s Pre-Installed Subversion'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3527060826849081489.post-5427020247141733928</id><published>2008-12-06T15:00:00.006+13:00</published><updated>2010-08-18T03:06:16.382+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='info.plist'/><category scheme='http://www.blogger.com/atom/ns#' term='Build Numbers'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Versions'/><title type='text'>Incrementing Your Build Number in Xcode</title><content type='html'>Here's a little shell script to increment a build number automatically with each build.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;It assumes the following about your versions in info.plist:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Your product version is CFBundleShortVersionString in info.plist&lt;br /&gt;eg 1.0.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Your build number is appended to your product version in CFBundleVersion&lt;br /&gt;eg 1.0.0.133&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Step by step:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Enter some default values in info.plist&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Bundle versions string, short: 0.1.0 (CFBundleShortVersionString)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  Bundle version: 0.1.0.1 (CFBundleVersion) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Select your Target in Xcode&lt;/li&gt;&lt;li&gt;Add a new run script build phase:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Project -&amp;gt; New Build Phase -&amp;gt; New Run Script Build Phase&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Paste the script below into the script box&lt;/li&gt;&lt;li&gt;Build your project&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: courier new;"&gt;version=$(sed -n '&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;/^[[:blank:]]*&lt;key&gt;CFBundleShortVersionString&amp;lt;\/key&amp;gt;$/ {&lt;/key&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;N&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;s/^[[:blank:]]*&lt;key&gt;CFBundleShortVersionString&amp;lt;\/key&amp;gt;\n[[:blank:]]*&lt;string&gt;\(.*\)&amp;lt;\/string&amp;gt;/\1/&lt;/string&gt;&lt;/key&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;p&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}' info.plist)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;build=$(sed -n '&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;/^[[:blank:]]*&lt;key&gt;CFBundleVersion&amp;lt;\/key&amp;gt;$/ {&lt;/key&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;N&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;s/^[[:blank:]]*&lt;key&gt;CFBundleVersion&amp;lt;\/key&amp;gt;\n[[:blank:]]*&lt;string&gt;.*\.\(.*\)&amp;lt;\/string&amp;gt;/\1/&lt;/string&gt;&lt;/key&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;p&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}' info.plist)&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;build=$(($build +1))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;cp Info.plist 'Backup of Info.plist'&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;sed '&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;/^[[:blank:]]*&lt;key&gt;CFBundleVersion&amp;lt;\/key&amp;gt;$/ {&lt;/key&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;N&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;s/\(&lt;string&gt;\).*\(&amp;lt;\/string&amp;gt;\)/\1'"$version\.$build"'\2/&lt;/string&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;P&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}' 'Backup of info.plist' &amp;gt; Info.plist&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;Each time you build using that target the build number will be incremented. A backup of your info.plist is made (just in case).&lt;br /&gt;&lt;br /&gt;You could easily extend this script to commit files to your subversion repository.&lt;br /&gt;&lt;br /&gt;The script uses multi-line sed and I'm no sed magician. If you're looking for a sed tutorial try &lt;a href="http://www.grymoire.com/Unix/Sed.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3527060826849081489-5427020247141733928?l=ios-dev.gravitini.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ios-dev.gravitini.com/feeds/5427020247141733928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ios-dev.gravitini.com/2008/12/incrementing-your-build-number-in-xcode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/5427020247141733928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3527060826849081489/posts/default/5427020247141733928'/><link rel='alternate' type='text/html' href='http://ios-dev.gravitini.com/2008/12/incrementing-your-build-number-in-xcode.html' title='Incrementing Your Build Number in Xcode'/><author><name>Gravitini</name><uri>http://www.blogger.com/profile/06797850924645926080</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry></feed>
