<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PawaStation 能猫环岛 &#187; iphone</title>
	<atom:link href="http://blog.pawa.ca/tag/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pawa.ca</link>
	<description>An Apple a Day Keeps the Doctor Away</description>
	<lastBuildDate>Sun, 08 Mar 2009 04:39:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>没有 nib 的 iphone 程序</title>
		<link>http://blog.pawa.ca/2009/01/07/nibless_iphone_app/</link>
		<comments>http://blog.pawa.ca/2009/01/07/nibless_iphone_app/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 09:45:50 +0000</pubDate>
		<dc:creator>pawaca</dc:creator>
				<category><![CDATA[tutorials]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.pawa.ca/?p=16</guid>
		<description><![CDATA[Interface Builder 开始用还觉得酷炫浮华，越用越觉得不对劲，对于刚开始学写 iphone 程序，没有帮助理解代码，反而隐藏了需要知道的内容，然后用线连啊连，连着连着就晕了。另外，重点是，牛人都直接用代码写 GUI 的啊 XD。刚才试了一下不用 nib，只用敲 code，真的可以耶。步骤如下： 1. 新建一个 Window-Based Application 项目 2. 删掉 1MainWindow.xib 文件 3. 删掉 1Info.plist 里面的 1Main nib file base name 属性 4. 把 1main.m 文件中的 1UIApplicationMain 函数最后一个参数由 1nil 改为  1@&#34;NiblessHelloWorldAppDelegate&#34; 也就是我们的主要 delegate 的类名字 5. 把 1NiblessHelloWorldAppAppDelegate.h 文件里的 1IBOutlet 声明删掉（不删也行） 6. 在 1NiblessHelloWorldAppDelegate.m 的程序启动回掉函数里加上我们自己创建 window 以及 view 的代码 [...]]]></description>
			<content:encoded><![CDATA[<p>Interface Builder 开始用还觉得酷炫浮华，越用越觉得不对劲，对于刚开始学写 iphone 程序，没有帮助理解代码，反而隐藏了需要知道的内容，然后用线连啊连，连着连着就晕了。另外，重点是，牛人都直接用代码写 <span class="caps">GUI </span>的啊 XD。刚才试了一下不用 nib，只用敲 code，真的可以耶。步骤如下：</p>

<p>1. 新建一个 Window-Based Application 项目</p>

<p><img class="alignnone size-medium wp-image-17" title="2009-01-07_1714" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1714-300x197.png" alt="2009-01-07_1714" width="300" height="197" /></p>

<p>2. 删掉</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">MainWindow.xib</div></td></tr></tbody></table></div>

<p>文件</p>

<p><img class="alignnone size-full wp-image-18" title="2009-01-07_1720" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1720.png" alt="2009-01-07_1720" width="388" height="215" /></p>

<p>3. 删掉</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Info.plist</div></td></tr></tbody></table></div>

<p>里面的</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Main nib file base name</div></td></tr></tbody></table></div>

<p>属性</p>

<p><img class="alignnone size-full wp-image-19" title="2009-01-07_1720_1" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1720_1.png" alt="2009-01-07_1720_1" width="564" height="324" /></p>

<p>4. 把</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">main.m</div></td></tr></tbody></table></div>

<p>文件中的</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">UIApplicationMain</div></td></tr></tbody></table></div>

<p>函数最后一个参数由</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">nil</div></td></tr></tbody></table></div>

<p>改为 </p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@&quot;NiblessHelloWorldAppDelegate&quot;</div></td></tr></tbody></table></div>

<p>也就是我们的主要 delegate 的类名字</p>

<p><img class="alignnone size-full wp-image-20" title="2009-01-07_1722" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1722.png" alt="2009-01-07_1722" width="552" height="134" /></p>

<p>5. 把</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">NiblessHelloWorldAppAppDelegate.h</div></td></tr></tbody></table></div>

<p>文件里的</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">IBOutlet</div></td></tr></tbody></table></div>

<p>声明删掉（不删也行）</p>

<p><img class="alignnone size-full wp-image-21" title="2009-01-07_1722_1" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1722_1.png" alt="2009-01-07_1722_1" width="485" height="150" /></p>

<p>6. 在</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">NiblessHelloWorldAppDelegate.m</div></td></tr></tbody></table></div>

<p>的程序启动回掉函数里加上我们自己创建 window 以及 view 的代码</p>

<p><img class="alignnone size-full wp-image-22" title="2009-01-07_1723" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1723.png" alt="2009-01-07_1723" width="585" height="241" /></p>

<p>7. Build And Go Go Go。。。</p>

<p><img class="alignnone size-full wp-image-23" title="2009-01-07_1739" src="http://blog.pawa.ca/wp-content/uploads/2009/01/2009-01-07_1739.png" alt="2009-01-07_1739" width="357" height="520" /></p>

<p>项目文件<a href="http://blog.pawa.ca/wp-content/uploads/2009/01/niblesshelloworld.zip">打包在这里</a>，请自取。。。</p>]]></content:encoded>
			<wfw:commentRss>http://blog.pawa.ca/2009/01/07/nibless_iphone_app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[速记]不用申请 iPhone Developer Program 也可以让程序在手机上跑的方法</title>
		<link>http://blog.pawa.ca/2008/11/30/install_ipa_on_jb_iphon/</link>
		<comments>http://blog.pawa.ca/2008/11/30/install_ipa_on_jb_iphon/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 01:46:26 +0000</pubDate>
		<dc:creator>pawaca</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.pawa.ca/?p=8</guid>
		<description><![CDATA[前提: iPhone 已经 jailbreak, 并且 MobileInstallation 文件已被替换 开发环境是 Xcode 步骤: 生成一个 Self Signed Certificate, 假设取名为 1&#60;strong&#62;iPhone Developer&#60;/strong&#62; , 步骤看这里 Xcode 菜单选 Project -&#62; New Build Phase -&#62;New Run Script Build Phase, 然后输入下面代码: 123456if [ &#34;${PLATFORM_NAME}&#34; == &#34;iphoneos&#34; ]; then platform=/Developer/Platforms/iPhoneOS.platform allocate=${platform}/Developer/usr/bin/codesign_allocate export CODESIGN_ALLOCATE=${allocate} codesign -fs &#34;&#60;strong&#62;iPhone Developer&#60;/strong&#62;&#34; ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME} fi 1Info.plist 文件加一个属性 1SignerIdentity 值为 1Apple iPhone OS Application [...]]]></description>
			<content:encoded><![CDATA[<p>前提:</p>

<ol>
	<li>iPhone 已经 jailbreak, 并且 MobileInstallation 文件已被替换</li>

	<li>开发环境是 Xcode</li>
</ol>

步骤:<br />
<ol>
	<li>生成一个 Self Signed Certificate, 假设取名为

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;strong&gt;iPhone Developer&lt;/strong&gt;</div></td></tr></tbody></table></div>

, 步骤看<a href="http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_2.html">这里</a></li>
	<li>Xcode 菜单选 Project -&gt; New Build Phase -&gt;New Run Script Build Phase, 然后输入下面代码:
<blockquote>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">if [ &quot;${PLATFORM_NAME}&quot; == &quot;iphoneos&quot; ]; then<br />
platform=/Developer/Platforms/iPhoneOS.platform<br />
allocate=${platform}/Developer/usr/bin/codesign_allocate<br />
export CODESIGN_ALLOCATE=${allocate}<br />
codesign -fs &quot;&lt;strong&gt;iPhone Developer&lt;/strong&gt;&quot; ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}<br />
fi</div></td></tr></tbody></table></div>

</blockquote></li>
<li>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Info.plist</div></td></tr></tbody></table></div>

<p>文件加一个属性</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SignerIdentity</div></td></tr></tbody></table></div>

<p>值为</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Apple iPhone OS Application Signing</div></td></tr></tbody></table></div>

</li>
	<li>Build Device Release Target</li>
	<li>随便找个目录, 把程序的 icon 图片重命名为

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">iTunesArtwork</div></td></tr></tbody></table></div>

<p>, 同一目录下建一个目录名称叫做</p>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Payload</div></td></tr></tbody></table></div>

, 将 Build 好的 Device Release 版本的 $(YourAppName).app 文件拽到 Payload 目录, 将 iTunesArtwork 和 Payload 一起打包 zip, 然后改文件名为 $(YourAppName).ipa</li>

	<li>双击 ipa 文件, iTunes 启动, 然后程序就被无情的同步到手机上了. XD</li>
</ol>
此方法刚在 2.2 版 jb 后的固件上试过, 还很热乎, 欢迎试用&#8230;]]></content:encoded>
			<wfw:commentRss>http://blog.pawa.ca/2008/11/30/install_ipa_on_jb_iphon/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
