Meal Snap

最近一直在琢磨有关图像识别的相关问题,也试用了一些OCR的开源库,识别扫描的文字很牛X,但对生活照片这种模式的的识别度都非常不理想。突然在微博上某同学CC了一个新的App,名字叫Meal Snap,功能是使用iPhone对着食物拍照,它就能告诉你这是什么食物,含有多少卡路里,并且帮助你规划每天所吃的食物。恩,售价不菲,$2.99。

抱着研究看看的态度入手了一个安装到iPhone上。界面做得不错,挺清秀,一看就是经过了细心的UI设计,这种软件嘛,吸引的是关注食物热量的减肥女士们,当然要可人一些。

拍照,拍照。由于在公司里没有食物可以拍摄,随机拍摄了一张卫生抽纸的照片,看看能不能识别。果然,软件一阵忙碌过后,告诉我这不是食物,不含卡路里。嗯,这个软件至少不撒谎⋯⋯

继续,中午刚好公司要集体去吃寿司,于是前往天绿回转寿司店。开始对着寿司们咔嚓、咔嚓、咔嚓。我靠,不是吧,居然都识别出来了,而且告诉我是加利福尼亚的寿司卷!还有卡路里含量。恩,刮目想看⋯⋯

回到公司,某同学剥了一根香蕉,于是咔嚓。经过很长一阵时间的忙碌,然后终于告诉我,这是一只可爱的香蕉。牛X⋯⋯

于是还不死心,拿了一串香蕉来咔嚓。显示识别结果:一堆香蕉⋯⋯

有图有真相:

Meal Snap

除了牛X,还能说啥呢?惟一的缺点是图像识别的速度很慢,甚至要5~6分钟才能给出结果。估计总要去后台的海量食物图库中进行对比算法吧。对国产食物识别不高,直接把粉蒸肉兄识别成了蛋糕兄⋯⋯

小试一把,果然不错。推荐给节食的MM们。软件推出后迅速窜上App Store 的Top25,可见一斑。虽然现在排名有所下降,但开发者赚得满当当那是指日可待。

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

FusionCharts.jpg

FusionCharts是自己一直在用的一个Flash图表生成控件,使用简单,功能强大,做出来的曲线图也十分漂亮,公司里好几个项目都使用过它的免费版,还曾有购买一套正式版本的想法。前几日收到一封来自FusionCharts的邮件,告知FusionCharts已经开始支持iPad和iPhone等移动设备。从iPhone4打开其Demo页面,感觉和Flash的效果完全相同,速度也很快,动画等效果也完全保留了。

立刻去下了一个最新版的回来测试,其实FusionCharts在iPhone和iPad设备上实现的原理很简单──HTML5。在很多人依旧在观望HTML5的时候,不少的先行者已经出发上路了。FusionCharts利用javascript和HTML5的canvans,原汁原味地实现了原版Flash的所有效果。也许真的有一天,HTML5普及之后,Flash真的会变成可有可无的东西。最新的MacBook Air笔记本更是已经放弃了预装Flash,Jobs的说法是:“希望能够让用户在拿到电脑以后自行去Adobe下载到最新版本的Flash,最新的版本会更先进而且更有保障”,笑翻了…

在iPhone4上试了一下FusionCharts,感觉真的还不错…

FusionCharts-iOS.jpg

VN:F [1.9.22_1171]
Rating: 9.0/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

文章转自:ifanr 爱范儿 ♂专注于拇指设备的小众讨论 by lordhong


Dev Camp,顾名思义,就是开发者聚会的意思。自从 iPhone 发布以来,世界各地的开发者都回不定期的举行 Dev Camp。第一期的 iPhoneDevCamp 是在笔者的母校纽约理工学院举行的。当时 iPhone SDK 还没有发布,所以 hacking 的气氛很浓,大家都在越狱了的一代 iPhone 上开发软件,其中一款 Trism ,后来在 App Store 上一个月收入 25 万美刀,一时传为佳话。后来由于 Apple 增加了很多开发者条款,而且随着 iOS 的不断完善,越狱在很多情况下已经变得可有可无了,所以今年在圣荷西举办的 Dev Camp 也就没有很多谈论到越狱或者私有 API 的话题,但总体来说,iOS 的开发者群体还是非常充满活力和创意的。

Dev Camp 的重头戏是 Hackathon,就是开发者临时组队,在1~2天内开发项目,有很多人这几天就没睡过觉,呆在场地内疯狂的编程。非常的有激情,也非常的刺激!

今年的聚会在 ebay/PayPal 总部。他们同时也是聚会的主要赞助商,提供了场地,饮料,音响,食品,等等,还提供了志愿者,非常给力。

很多开发者都从遥远的地方赶来,早早的来签到了:


现场还有免费的杂志和书拿,这边 iPad Sketch Book 相当不错:


PayPal的人上来做了个开场白,就算大会正式开始了。哦,对了,外面摆满了食物和饮料,还有啤酒,相当的厚道:


当然大家最关心的就是 Hackathon,这里是一些人在介绍自己的想法,希望吸引潜在的队友加盟,当然不仅仅是程序员,设计师,美工,测试,服务器端调试,都是很抢手的人才:)



这个团队做的项目是 SuperRover。用 iPhone 4 通过 Macbook 里的一个服务,使用蓝牙和乐高的 Mindstorm 机器人通话,发出不同的指令。(笔者看好他们的潜力,所以就早早拍了几张照片,果然不出所料,他们得了大奖)


而且,他们还有超年轻的小朋友队员:)


开发玩的游戏,当然是大家一起玩才有意思啊。这个是得奖的多人游戏 DIODE:


最后,AllThingsD 的摄影师 Alex 帮大家拍了群体照。当然,面对几百个举起的 iOS 设备(绝大部分都把阳光折射到他脸上,囧。。。),场面非常彪悍~



星期天下午,演示正式开始,各个团队成员排成一队,紧张而兴奋得等着上台:


SuperRover 的第一次演示没有成功,因为在 Macbook 上的服务器程序 crash 了


重启服务程序就搞定了,这个 SuperRover 机器人还会发送球形炸弹呢!


这个是来自乌克兰的团队,展示一个 3D 模型拆卸 iPhone 4 的应用,非常的酷!


这个是父子兵团队,开发了一个叫 PayKids 的应用。也就是小孩子通过应用向老爸要零花钱,老板通过批准后,从自己的 PayPal 帐号转帐到小朋友的 PayPal 帐号里,很有意思。

这次聚会到场估计有 350 到 400 人。以往的聚会都是厂商赞助的,这次由于经济危机,虽然有赞助,到与会者每个人还要付 50 刀门票。但 2 天聚会包三餐,还有饮料,小吃,免费 T-Shirt,免费书籍,免费讲座,当然还有 Hackathon。还有很多纪念品,绝对物超所值啦!

Hackathon 最终获奖名单在此:link 很多是开源项目:)

先到此为止,我们下个 iOSDevCamp 再会:)

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

iPhone Developer:“This is whyIsellbeer”

原作者Jamie ZawinskiNetscapemozilla.org的创始人。 本文由吴安寿翻译。

DaliClock2.31(一款为Mac设计的数字时钟软件)现在已经释出。 我要做iPhone/iPad的移植工作。这是相当可笑的难处,因为我拒绝为MacOSX代码库增设分支:桌面系统和手机系统都被差别不大的相同的操作系统所支持,所以它应该是一组与桌面应用和iPhone应用有着类似的应用编译,但只是在规模上小一些的代码群(注:if,def可能是代码的一种别称吧。)。对不? 哦,哈哈哈哈!

我想可以非常肯定地说MacOS的兼容性要比iPhone好得多。这里面满着各种白痴的例子。这就是它如何在桌面系统上运行的代码。

    NSColorfg=[NSColorcolorWithCalibratedHue:hsaturation:sbrightness:valpha:a];

    [fggetRed:&rgreen:&gblue:&balpha:&a];

    [fggetHue:&hsaturation:&sbrightness:&valpha:&a];

    但是在手机系统上却是这样的:

    UIColorfg=[UIColorcolorWithHue:hsaturation:sbrightness:valpha:a];

    constCGFloat*rgba=CGColorGetComponents([fgCGColor]);

    //Oh,youwantedtogetHSV?Sorry,writeyourown.

    //哦,你想要HSV?对不起,你自己写吧。

    这里充满着很多像这样愚蠢的东西。你是否认为有些人看着旧代码并说:“你知道的,为了使它在iPhone上能够更加有效地运行,我们不得不重新命名 这些类,而且必须保证:这些新的类通过他们的方式,有完全不同的API和使用完全不同的参数能够完成旧库曾经做过的同样的事情。这是使这个平台能够成功的唯一方法。不是这样的。他们起用一些实习生(新生的),这些人对旧库完全不了解,只会埋头重写一个,而忽略了早已存在的代码、表达式、类等。现在都2010了。我们还要在如何通过围绕像素来成像进行创新?这是真的? 你可以通过许多定义(#defines)来解决一些这类愚蠢的行为。但是在一大堆方法中的API也是随时会脱节的。所以只会招来更多的悲剧。如果你有一个程序需要控制很多的颜色,你可以想象一个充满“ifdeffy”的世界给你造成的麻烦有多大。

     参数选择作为常用的解决方案就足够了。我最后几乎理解绑定,当你必须使用NSUserDefaultsController和NSUserDefaults进行比较时,你就对此有了模糊的概念。但是现在我们要猜测 iPhone 缺乏什么?绑定?还是NSUserDefaultsController。但是事实上,它拥有NSUserDefaults。我真的无法解释。

     此外还有。

     我基本上已经放弃了试图让Cocoa(注:Cocoa是MacOSX上原生支持的应用程序开发框架)或者Quartz(注:Quartz是位于MacOSX的Darwin核心之上的绘图库)的任何查兼容版本能够同时运行在这两个平台之上。我的做法由于像上面提到的那些随意的API使之成之变成一个由#ifdefs组成的令人发疯的迷宫。庆幸的是我早已把那个令人头疼的例子。最后我要说:“操,iPhone是 运行OpenGL,对吧?”我刚刚在GL重写了显示层,并扔掉了那些该死的Quartz代码。(让我们记住我在编写这个程序时所做的疯狂的复杂的事情吧:我有一个位图,我让它用两种颜色快速地在屏幕上显示,并且时不时地改变颜色。这真他妈琐碎,是吧?哦,呵呵呵呵。)

     所以我在OpenGL里重写了它,就只是将我的位图倾倒入参照纹理中去。 这也是你们当中的人会笑话我的地方,因为我不知道iPhone 居然运行OpenGLES!当然它有一个特点,就是与OpenGL打交道比iPhone必须与Mac系统打交道的事情要少。

     我期待这个常用的在创造OpenGL上下文环境和要求颜色缓冲时的“ifdef” 疯狂乱舞。因为没有指定的OpenGL跨平台的语言去开始,但是这却不是我所期待的。我至今仍对此目瞪口呆:这个OpenGLES居然移除了glBegin()和glVertex()。

     不,真的,真的没有。

     这就像OpenGL的特征定义。所以OpenGLES只是OpenGL微不足道的变种而已,就像单轮脚踏车是城市公交车微不足道的变种。如果你能控制得了它,那么其他的不就大致相同了吗?

     再提一下那个该死的情况吧。我几乎明白在嵌入式API中以效率的名义移除要显示的清单的理由(我不喜欢它,因为我的屏幕保护程序倾向于按照清单显示,但我能理解它)。但是你可以glDrawArrays()的形式完全实现glBegin() 和glVertex()的功能。这就是为什么要把它们扔掉的原因。

     那么,我在干嘛呢?

     终于搞定了。我想DaliClock终于可以在iPhone和iPad运行了。但我却不能让它运行在我的手机上,我还没有克制好我的愤怒,因为在我被允许在我买的手机上测试我所编写的程序之前,我必须先向乔布斯上交100美元的什一税。 我想如果我先把我的手机“越狱”(解锁),那么我就能完全控制它。但是上一次我这样做了,手机就 不稳定了,我必须重新安装它。

     所以,你们当中的人已经恳求应用程序商店更改原则允许从源代码建立它,而且如果让我知道它能够在你们的实际设备上运行,那将会非常地酷。

     哦,另外,自从我在OpenGL中改写了它,我注意到:在860MHz PPC G4处理器设备上,全屏模式下,得到一个不错的画面是相当地慢。我的意思是说,那机器只比一个16MHz的Palm Pilot(Palm公司的一款产 品)快53倍,只比8MHzMac128k快107倍。

     这就是为什么我要卖啤酒去了。

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

 

从WeiPhone的论坛里看到的,不少技巧还真的是第一次才知道。

  1.  密码锁机时的快速拨号密码锁机时想临时拨个号码,正常的程序是:slide to unlock -> Enter Passcode -> Phone -> Keyboard -> type number and call 其实可以简化些,在Enter passcode界面左下角按 Emergency call,直接按号码就可以,别让“Emergency call”这个名字给骗了,其实这个界面是可以拨任何号码的。
  2. 标点符号快速输入法输入的时候如果想快速输入标点符号,可以按住"123"键后,滑动到你要输入的标点符号上松开,你可以看到符号已经输入并且键盘自动回到了字母键盘。另外,输入标点符号后按空格,也会自动跳回到字母键盘,这对于英文输入是非常人性化的 [4.2 update]双击空格,则会自动输入"." 
  3. safari 回到页面顶端浏览网页时,随时点击屏幕最上方的状态条,网页会自动跳到顶端,同时显示地址栏 。
  4. 文本框滚动在文本框里输入文字,如果超出范围,会发现文本框没有滚动条,单个手指也只能滚动整个页面,这时候用两个手指试试,别忘了iPhone的multi-touch,呵呵。
  5. 输入拉丁文字母按住英文键盘某个字母不放(比如 o或者e),会弹出相似的拉丁文常用字母 
  6. safari 上下左右翻页双击相应方向的空白区域,比如向下翻页,就双击网页靠近底部的空白区域 
  7. 彻底退出当前应用按住home键8秒 。
  8. 在号码键盘上打出完整电话,如果电话在地址簿中,号码下方会自动显示出名字
  9. google maps定位完成后,仅显示大概范围,用一个类似准星的东西标识出来,这时使用Replace Pin/Drop Pin 功能,直接定位到准星的中心点 
  10. 输入日期年份的地方,转动到最后是公元99999年,而最前是公元1年,也就是说未来战士也可以用iPhone,但是Apple认为你不可能比耶稣年纪更大。
  11. 拍照时可以按住拍照键,然后取景,之后点击屏幕任意区域进行拍照。
  12. 股票中可以添加000001.ss或000001.sz之类的股票代码分别代表沪、深市的股票,不过行情延迟有20分钟,做做一天的回顾还是不错的。
  13. 发短信的时候不必等待发送完毕就可以按下home键去做别的,放心,短信还是会正常发出的。
  14. lock状态双击home键可以调出iPod控制台,而其他状态下则可以设置成直接进入phone favorite。 
  15. 将中文姓名的“最后一个字”的拼音首字母作为地址簿排序依据,可以避免由于姓氏的高重复性造成的查找困难,[4.2 update]同时在收件人(sms/email)输入的时候就可以单击字母快速添加联系人。
  16. 可以放心地开着wifi而不怕费电,因为当你lock之后20秒左右,wifi就会自动关掉。
  17. safari浏览网页时,如果有形如“010-87654321”的文字(是文字,不是链接),试着点一下,会提示你是否打这个电话,这一招在dianping.com之类的网站上订位比较有用。
  18. 闹钟响起时,sleep键就是小睡功能,而slide就是关闭闹钟。
  19. 按住网页里的某个链接不松,会弹出一个小信息气泡,告诉你这个链接所真正指向的网址。
  20. iPhone版safari浏览网页有时会遇到网页中间的某个区域是可以滚动的,但你想用手指拖动时却发现整个网页都滚动了,而不是你想要滚动的那片区域。解决方法是用两个手指拖动那块地方。
  21. iPhone最主要的限制是iPhone笔记本应用程序无法与你的Mac电脑进行同步,使用什么软件都不行(自己写的另算)。有个解决办法:每个联系人都有一个注解区,所以你可以在地址簿里创建一个假的联系人,然后把任何你喜欢的内容粘贴到它的注解区里。同步一次以后,所有的信息就都在你指尖了。
  22. iPhone地图应用程序最主要的应用就是获知驾驭方向。出发地点与目标地都有书签图标,所以你可以在搜索地点时快捷地使用书签功能,当前的地点,或者是联系人。在iPhone地图中你首先要做的事情是找到你自己的地址并做上书签——这样可以让查找地点更容易。
  23. 你可以重建你的iPod音频控制:如果你在iPod上听过有声图书,你或许会知道,自从第四代iPod发布后,你就能够控制播放速度,设置为更快或者更慢了,随你喜欢。iPhone也有这个功能。只要点一下设置按钮,然后在iPod选项里,点一下“有声图书播放速度”选项,在返回的屏幕中,选择,慢,正常或者快即可。其它的iPod功能也在iPhone上能找到。你可以使用设置屏幕来打开声音扫描(用来确定不曲目之间的音量能一致)然后选择22种预置均衡中的任何一个即可。
  24. 你可以自己设置更改喜欢的主页:把你想要设置的主页添加进书签列表,然后把它移动到书签列表的顶部。没错,需要多触动一下——首先点一下书签图标,然后是书签本身。方法虽然有效,但当你想打开自己最喜爱的网页时,会显得好像手忙脚乱。
  25. iPhone里看上去似乎不能把已读邮件重新标记为未读——不过的确有办法能做到。在阅读邮件消息时,点一下详细信息,就能看到一个“标记为未读”选项,点一下,下一次你再看收件箱时,这封邮件就会显示一个蓝点,表示还没有被读过。 
  26. 事实上,你不能在iPhone里创建电子邮件文件夹。但你可以用IMAP邮件帐户在IMAP服务器上创建文件夹——举个例子来说,如果你有一个.Mac帐户,使用.Mac的Web邮件界面。这些文件夹就会显示在iPhone里。而它们的内容将最终会在iPhone和服务器之间进行同步。 
  27. 如果你想保留当前正在编辑的邮件,以便一会能重新进行编辑,点一下“取消”键。邮件不会马上被删除,而是会弹出一个对话框,有一个“保存”选项,不保存,也不取消。点一下“保存”,那么这封邮件消息就会放到草稿文件夹里。(如果你的邮件帐户里当前没有草稿文件夹,Mail将会创建一个)。如果邮件没有立即出现了草稿文件夹里,也不要大惊小怪,有时需要好几分钟以后邮件才会出现在草稿箱里。 
  28. 模仿某个你的iPhone突然失去响应的时刻。推动Home按钮也管不了一点作用。按下休眠/唤醒键同样也起不到任何作用。你该怎么办?苹果的重启窍门第一条是:按下Home键且保持不放6-8秒钟,退出任何可以卡住iPhone的程序。如果那也不奏效,试着同时按下Home和休眠/唤醒键,并保持不放大约10秒钟,就能重新看到Apple的标志。(与iPod相比这个重启技巧花的时间更长一些,在iPod里选择菜单按钮大约4秒后就会重启iPod)。
VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

ios-child.jpg

1.工程师爸爸,老师妈妈是盛大一位技术工程师的博客,专门更新一些在iOS上运行的各种适合幼儿的图书、游戏、教育软件等。在Twitter上看到有人推荐,感觉很不错,订阅之。

2.德国队输了,我的世界杯结束了。我可是德国队的超级球迷,十多年前从FIFA97开始玩足球游戏只选德国队,2006年世界杯的时候还买了德国队的球衣…不过他们说3、4名的比赛比决赛更好看,因为双方都不谨慎了,3、4名都憋着一口气,踢得会十分放开。

3.7月1日苹果的iAd发布后,那些放Admob广告的估计都跃跃欲试转投到iAd旗下了。看了一下网上的视频,广告效果那是一级棒!但是开发者收益如何呢?7天后,一个做手电筒app的开发者公布了自己的收益,第一天收入1300美元!eCPM高达147美元,这是见到的最高的广告分成收入了。app开发者们疯狂的iAd竞争要开始了,又一轮app淘金热即将开始。即使广告这么贵,但目前的情况是,想在苹果的app上打广告的商家,您还得排队…

4.老婆的肚子一天天大起来,越来越开心的同时压力也越来越大。每天看着老婆挺着大肚子去挤公交上班,就自己不断埋怨自己太穷没有能力买车让老婆出行轻松一些。目前正在努力存生孩子的钱,光是开一刀手术费都要上万呢。至于养孩子的钱,现在还不敢想…光是老婆打算开出的给孩子的清单,就足够吓人的了。至于将来的奶粉钱,你们在哪里等我呢?上一辈含辛茹苦养大好不容易拉扯大我们的故事,又要在我这一代中上演…

5.Apple Store明天上海浦东开门营业,5000件苹果T恤免费发!谁去抢一件来送我啊…

6.《独唱团》中的小铁锤源自《肖申克的救赎》,电影中主人公就是用它一点一点的敲碎了监狱的高墙,奔向自由。

 

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

前几天升级了iOS4,最主要的目的是冲着iBooks来的。苹果靠着iTunes卖数字音乐,都赚到天文数目的利润。如今随着iPad的推出,iBooks也开始让苹果直接销售电子书赚大钱。从WWDC上的报告来看,iBooks卖电子书的成绩相当不错。

ibooks.jpg

装上iBooks后,直奔book store,却略感失望。抛开英文书不说,几乎没有太多的中文书籍下载,下了部《红楼梦》,发现还没有网友们的电子版做得精美。后来在iTunes上直接将PDF的电子书拖进iTunes中,用iBooks阅读。iTunes会把我们从book store中购买的电子书自动放入iPhone的购买内容的分类中。

而后发现iBooks支持epub通用的电子书格式。于是大喜,从网上Down回大把大把的epub格式的电子书,直接拖入iTunes,怎一个爽字了得。

可惜自己的iPod touch2代,运行iBooks一卡一卡的,128M的内存确实小了些,唯有一声叹息。

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

doodle-jump.jpg

文章来源:http://toucharcade.com/2010/06/25/doodle-jump-surpasses-5-million-downloads/

iPhone上仅售0.99美元的小游戏《Doodle Jump》,昨天下午宣布共卖出500万份拷贝,这是非常令人羡慕的一个成绩。游戏开发小组Lima Sky,只有两兄弟Igor和Marko Pusenjak所组成,主要开发iPhone下的简单小游戏。当宣布卖出500万份拷贝的时候,他们相信这是App Store上首个突破500万次的游戏应用。除开Apple30%的提成,这两兄弟的小游戏已经赚到了350万美元。

自从游戏《Doodle Jump》发布后,它就成为了一个流行文化的元素,从此带动了Doodle类游戏的飞速发展。在美剧《Big Bang Theory》中的宅男们也提到它,甚至连Doodle的造型都曾在Lady Gaga的表演舞台上出现过。而在今年《Doodle Jump》更是获得了苹果的WWDC设计奖。目前在App Store上,你现在可以看到各式各样的Doodle类游戏。

NewImage.jpg
Lady Gaga 和Doodle Jump

《Doodle Jump》的成功非常符合App Store的精神,几个人的小团队,用自己的创意,开发着小小的软件,交给苹果销售,享受着App Store市场的高速发展和获利。面对PC和游戏机市场的那些游戏大鳄厂家的竞争,在iPhone这个“只有1亿用户”的小市场,用非常廉价又非常好玩的小游戏(0.99美元),让自己赚得满满当当。

当然,作者对《Doodle Jump》不断的改进和增加新的游戏要素,是让游戏持续保持旺盛的生命力的关键。几乎每一次《Doodle Jump》增加新的游戏要素的时候,都能让用户获得新鲜的体验。即使在赢得WWDC的大奖后,Pusenjak两兄弟还表示将继续对《Doodle Jump》保持更新,思考新的游戏要素。如果有可能,《Doodle Jump》将会继续突破自己的下载记录。

NewImage.jpg

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Bug是永远伴随着程序员们的东西,各种各样的情况造成程序crash掉也是家常便饭。Windows下的很多大型软件在崩溃的时候,都会弹出提示框,询问用户是否将crash的信息发送到软件厂商,以供软件开发商debug。App store中的软件也有这个功能,用户在使用软件的时候,如果程序崩溃,错误信息会发送到Apple的服务器中,软件的开发者们可以很方便在后台获得自己程序的crash log,供自己调试。

但随之而来的问题是,我们收到的程序崩溃调试信息多半是汇编语言一样的堆栈代码,同时这些信息并不是在我们debug的时候产生,所以看到这一串crash log的天书,常常无可奈何。Xcode很好的解决了这一问题,它所提供的Orgainzer分析器加上symbolicatecrash,可以分析二进制文件以及源代码和crashlog之间的连接,直接找出源程序中出错的代码行。方法网上到处是,本文不讨论。

但是如果使用symbolicatecrash无法定位到出错的代码行的话,怎么整呢?有一个办法,如下:

首先查看crash log中的崩溃线程,假如是这样的:

Thread 0 Crashed:
0   libobjc.A.dylib               0x00003ec0 objc_msgSend + 24
1   MyApp               0x000036d2 0x1000 + 9938

我们得到了用户发生崩溃情况的内存地址:0x000036d2

然后回到我们应用程序的build目录,目录下一定要包含MyApp.app 和MyApp.app.dSYM两个文件。

在控制台使用dwarfdump命令,解析出内存地址,如: 

dwarfdump –lookup 0x000036d2 –arch armv6 MyApp.app.dSYM

输出信息如下:

dwarfdump.jpg

直接定位到代码的出错行,Cool!

 

 

VN:F [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

appstore-01.jpg

iOS4发布后总是心痒痒的,感觉非要捣鼓点什么东西才行。发现了iTunes的Home Share功能,它可以在一个局域网内共享大家购买的iPhone音乐、游戏和软件。尝试了半天未果,决定祭出授权和同步大法,终于实现了在公司同事之间不同iPod touch设备中共享软件和游戏方法。以后有什么好玩的游戏和软件,就可以一人购买,大家共享了!更可以大家凑钱来买一个软件,iTunes可以授权5台电脑,每人每月购买二款软件的话,我们就可以玩到10款…目前在说服大家凑钱购买植物大战僵尸中,只要2.99美元,你没有听错,只要2.99美元!

当然,如果你是jailbreak玩家,此文不用看也罢,点击关闭窗口好了。

假设你需要将朋友的iPhone中购买的软件和游戏拷贝到自己的iPhone中。

1.首先第一件事情,使用iTunes对电脑进行授权。一个iTunes Store帐号可以同时对5台电脑进行授权。重装系统之前一定要记得使用iTunes取消授权,否则就浪费一个了。5个授权用完可以在苹果的网站中重置一次授权,好像一年只有一次机会。用你朋友的帐号授权这台电脑。

2.授权以后,将你朋友的iPhone插入USB,让iTunes识别到这台设备。在设备上点击右键,选择“传输购买项目”,也许还要一次帐号密码的输入过程,这样,你朋友所购买的软件和游戏就拷贝进入了你的iTunes库中。

3.拔掉朋友的iPhone,插入自己的iPhone,在同步的应用程序选项中,左侧将出现新的游戏和软件,就是你朋友所购买的。选择自己的喜欢的,同步到自己的手机和iPod touch中去吧!

iTunes-01.jpg

 

VN:F [1.9.22_1171]
Rating: 4.5/10 (8 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)