<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Using shared libraries for iPhone with multiple projects</title>
	<atom:link href="http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/</link>
	<description>Internet Gaming, Computer Games, Technology, MMO, and Web 2.0</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:26:58 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2777</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Tue, 31 Mar 2009 18:25:42 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2777</guid>
		<description>Cool - sounds like I somehow managed to mess it up then, because I had everything in one flat directory IIRC.

I&#039;ll try again soon, and see if I can get it work this time. Thanks!</description>
		<content:encoded><![CDATA[<p>Cool &#8211; sounds like I somehow managed to mess it up then, because I had everything in one flat directory IIRC.</p>
<p>I&#8217;ll try again soon, and see if I can get it work this time. Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Clint</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2776</link>
		<dc:creator>Clint</dc:creator>
		<pubDate>Tue, 31 Mar 2009 18:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2776</guid>
		<description>@adam

Regarding the shared build output dir, I haven&#039;t noticed any problems since I started using it in about four months ago. I have a custom logging library, for example, that is shared amongst several iPhone and OS X apps. The OS X versions show up in &quot;Release&quot; and &quot;Debug&quot; directories, the simulator versions in &quot;Release-iphonesimulator&quot; and &quot;Debug-iphonesimulator&quot;, and finally the device versions in &quot;Release-iphoneos&quot; and &quot;Debug-iphoneos.&quot; In other words, none of the builds seem to be overwriting each other (unless I&#039;m totally missing something).

Of course I&#039;m not disputing the issues you&#039;re saying occurred on your machine; I&#039;ve only used the &quot;shared build output dir&quot; in my own environment. That said, the Apple documentation actually suggests doing this (see the last paragraph in the &quot;Referencing Other Projects&quot; section of &quot;Xcode Project Mangagement Guide&quot;--http://tinyurl.com/c6c9vo), so hopefully it&#039;s just a config problem on your machine?</description>
		<content:encoded><![CDATA[<p>@adam</p>
<p>Regarding the shared build output dir, I haven&#8217;t noticed any problems since I started using it in about four months ago. I have a custom logging library, for example, that is shared amongst several iPhone and OS X apps. The OS X versions show up in &#8220;Release&#8221; and &#8220;Debug&#8221; directories, the simulator versions in &#8220;Release-iphonesimulator&#8221; and &#8220;Debug-iphonesimulator&#8221;, and finally the device versions in &#8220;Release-iphoneos&#8221; and &#8220;Debug-iphoneos.&#8221; In other words, none of the builds seem to be overwriting each other (unless I&#8217;m totally missing something).</p>
<p>Of course I&#8217;m not disputing the issues you&#8217;re saying occurred on your machine; I&#8217;ve only used the &#8220;shared build output dir&#8221; in my own environment. That said, the Apple documentation actually suggests doing this (see the last paragraph in the &#8220;Referencing Other Projects&#8221; section of &#8220;Xcode Project Mangagement Guide&#8221;&#8211;http://tinyurl.com/c6c9vo), so hopefully it&#8217;s just a config problem on your machine?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2768</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 30 Mar 2009 23:51:39 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2768</guid>
		<description>@clint

yeah. the more persepctives the better - there&#039;s so many pitfalls in this!

I had a quick look over your instructions and I&#039;d be interested in how the shared output build dir worked for you. As far as I can see, Xcode has some awesome fundamental bugs that make that a bad idea - e.g. I believe (as in - it happened when I tried it, but I wasn&#039;t sure why, and maybe I just made a config mistake) that this will cause e.g. a debug build to overwrite the libs for the release build in that dir.

No problem?

Well, yes, actually, the moment you need to export that file to e.g. check it in to SVN. Or to email it to a client. Just one accidental rebuild of ANY of your projects using that directory while they are in the &quot;wrong&quot; mode will vaporize your otherwise working binary.

Of course, you shouldn&#039;t be exporting direct from an output directory, but I haven&#039;t yet worked out how to get Xcode to behave like a normal IDE and just do custom build outputs in a sensible manenr (I&#039;m sure it&#039;s possible, I&#039;ve heard other people have done it, I just haevn&#039;t worked it out yet myself)</description>
		<content:encoded><![CDATA[<p>@clint</p>
<p>yeah. the more persepctives the better &#8211; there&#8217;s so many pitfalls in this!</p>
<p>I had a quick look over your instructions and I&#8217;d be interested in how the shared output build dir worked for you. As far as I can see, Xcode has some awesome fundamental bugs that make that a bad idea &#8211; e.g. I believe (as in &#8211; it happened when I tried it, but I wasn&#8217;t sure why, and maybe I just made a config mistake) that this will cause e.g. a debug build to overwrite the libs for the release build in that dir.</p>
<p>No problem?</p>
<p>Well, yes, actually, the moment you need to export that file to e.g. check it in to SVN. Or to email it to a client. Just one accidental rebuild of ANY of your projects using that directory while they are in the &#8220;wrong&#8221; mode will vaporize your otherwise working binary.</p>
<p>Of course, you shouldn&#8217;t be exporting direct from an output directory, but I haven&#8217;t yet worked out how to get Xcode to behave like a normal IDE and just do custom build outputs in a sensible manenr (I&#8217;m sure it&#8217;s possible, I&#8217;ve heard other people have done it, I just haevn&#8217;t worked it out yet myself)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Clint</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2767</link>
		<dc:creator>Clint</dc:creator>
		<pubDate>Mon, 30 Mar 2009 23:41:22 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2767</guid>
		<description>Argh! I *just* finished documenting the same &quot;several-hours-of-trial-and-error&quot; adventure on my own blog (http://www.clintharris.net/2009/iphone-app-shared-libraries/) before stumbling onto this. Definitely could have saved myself some time by coming here first...</description>
		<content:encoded><![CDATA[<p>Argh! I *just* finished documenting the same &#8220;several-hours-of-trial-and-error&#8221; adventure on my own blog (<a href="http://www.clintharris.net/2009/iphone-app-shared-libraries/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://www.clintharris.net/2009/iphone-app-shared-libraries/');" rel="nofollow">http://www.clintharris.net/2009/iphone-app-shared-libraries/</a>) before stumbling onto this. Definitely could have saved myself some time by coming here first&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bandur</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2736</link>
		<dc:creator>bandur</dc:creator>
		<pubDate>Tue, 24 Mar 2009 20:30:26 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2736</guid>
		<description>Good information; however, I would argue that the decision whether to link against a built, binary version of the library (a la StormyProds), or to link projects (which you describe) is complicated and should take into account the overall development strategy of oneself or one&#039;s organization.  

If you&#039;re a lone-wolf coder just sharing a library between a couple of your own apps, then linking projects is probably the most convenient way to go.  On the other hand, if you have three developers, one working on App A, another on App B, and a third on shared library X, then you can easily get into a situation where you want App A linked to libX-1.0, App B linked to libX-2.0, and Developer X working on libX-3.0.  

Linking dependent projects ensures that all of your apps use the latest code, but it also forces you to upgrade all of your apps every time you want to upgrade your library; releasing and linking against specific versions of your library separates the decision to upgrade your library from the decision to upgrade your apps--which allows you to be more strategic in how you allocate your development time.</description>
		<content:encoded><![CDATA[<p>Good information; however, I would argue that the decision whether to link against a built, binary version of the library (a la StormyProds), or to link projects (which you describe) is complicated and should take into account the overall development strategy of oneself or one&#8217;s organization.  </p>
<p>If you&#8217;re a lone-wolf coder just sharing a library between a couple of your own apps, then linking projects is probably the most convenient way to go.  On the other hand, if you have three developers, one working on App A, another on App B, and a third on shared library X, then you can easily get into a situation where you want App A linked to libX-1.0, App B linked to libX-2.0, and Developer X working on libX-3.0.  </p>
<p>Linking dependent projects ensures that all of your apps use the latest code, but it also forces you to upgrade all of your apps every time you want to upgrade your library; releasing and linking against specific versions of your library separates the decision to upgrade your library from the decision to upgrade your apps&#8211;which allows you to be more strategic in how you allocate your development time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Huh?</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2677</link>
		<dc:creator>Huh?</dc:creator>
		<pubDate>Sat, 14 Mar 2009 19:33:28 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2677</guid>
		<description>WTF is a &quot;twisty&quot;?</description>
		<content:encoded><![CDATA[<p>WTF is a &#8220;twisty&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2652</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Fri, 06 Mar 2009 13:19:01 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2652</guid>
		<description>@andy

Being explicit about the Xcode bugs and flaws is IMHO an essential part of explaining the process; people need to know that when it goes weird it (probably) isn&#039;t that they&#039;ve done something wrong, it&#039;s Xcode being passive-aggressive towards them.

If Xcode&#039;s flaws and Apple&#039;s bad docs (which tell you to use dynamic libs instead ... despite the fact that apple has *banned* us from using dybamic libs on iphone) were not such a core part ofthis particular process then I wouldn&#039;t mention them.

Except maybe for comic effect / sharing the pain - this is a blog after all, not a peer-reviewed tech journal. I get to be flippant and emotional :).</description>
		<content:encoded><![CDATA[<p>@andy</p>
<p>Being explicit about the Xcode bugs and flaws is IMHO an essential part of explaining the process; people need to know that when it goes weird it (probably) isn&#8217;t that they&#8217;ve done something wrong, it&#8217;s Xcode being passive-aggressive towards them.</p>
<p>If Xcode&#8217;s flaws and Apple&#8217;s bad docs (which tell you to use dynamic libs instead &#8230; despite the fact that apple has *banned* us from using dybamic libs on iphone) were not such a core part ofthis particular process then I wouldn&#8217;t mention them.</p>
<p>Except maybe for comic effect / sharing the pain &#8211; this is a blog after all, not a peer-reviewed tech journal. I get to be flippant and emotional :).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2651</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Fri, 06 Mar 2009 12:23:50 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2651</guid>
		<description>I think your post would be a lot more readable and useful if you removed the anit-XCode diatribe. If you have a chip on your shoulder about XCode the thing to do would be post a specific blog post with your grievances, and not litter an otherwise helpful post with it.</description>
		<content:encoded><![CDATA[<p>I think your post would be a lot more readable and useful if you removed the anit-XCode diatribe. If you have a chip on your shoulder about XCode the thing to do would be post a specific blog post with your grievances, and not litter an otherwise helpful post with it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2594</link>
		<dc:creator>Harry</dc:creator>
		<pubDate>Fri, 27 Feb 2009 09:24:59 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2594</guid>
		<description>I feel your pain! Not a day goes by where I don&#039;t curse XCode, usually its ridiculous code completion &quot;features&quot;. Your blog post is great though, as this is something that we&#039;ve just started doing as well.

By the way, I&#039;d like to stress the &quot;secretly using files that aren&#039;t in the project but still on your harddrive&quot; error in XCode. I&#039;ve had it jump to an old implementation (the ctrl+alt+up shortcut) after renaming a .m file to .mm.

You can also delete .h files at random (delete references but leave the file on the HD) and your project will compile and run without trouble.</description>
		<content:encoded><![CDATA[<p>I feel your pain! Not a day goes by where I don&#8217;t curse XCode, usually its ridiculous code completion &#8220;features&#8221;. Your blog post is great though, as this is something that we&#8217;ve just started doing as well.</p>
<p>By the way, I&#8217;d like to stress the &#8220;secretly using files that aren&#8217;t in the project but still on your harddrive&#8221; error in XCode. I&#8217;ve had it jump to an old implementation (the ctrl+alt+up shortcut) after renaming a .m file to .mm.</p>
<p>You can also delete .h files at random (delete references but leave the file on the HD) and your project will compile and run without trouble.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ted Howard</title>
		<link>http://t-machine.org/index.php/2009/02/26/using-shared-libraries-for-iphone-with-multiple-projects/comment-page-1/#comment-2591</link>
		<dc:creator>Ted Howard</dc:creator>
		<pubDate>Thu, 26 Feb 2009 19:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=365#comment-2591</guid>
		<description>I&#039;m glad to hear that I&#039;m not alone in thinking that Apple&#039;s development tools are hard to use. I was excited to try out Mac development when I got my MacBook for my current job, but after less than a day I realized that Apple didn&#039;t make it nearly easy enough. I wondered if I was the problem or Apple&#039;s developer group was the problem. In the recent past I&#039;ve done C#, MAXScript, and C++ Xbox 360 dev work, so it&#039;s not like my skill set is limited.</description>
		<content:encoded><![CDATA[<p>I&#8217;m glad to hear that I&#8217;m not alone in thinking that Apple&#8217;s development tools are hard to use. I was excited to try out Mac development when I got my MacBook for my current job, but after less than a day I realized that Apple didn&#8217;t make it nearly easy enough. I wondered if I was the problem or Apple&#8217;s developer group was the problem. In the recent past I&#8217;ve done C#, MAXScript, and C++ Xbox 360 dev work, so it&#8217;s not like my skill set is limited.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
