• 初探“狮穴”

    昨晚装上了Lion(10.7),从App Store下载了Xcode 4.1,App Store果然了得,速度非常快,3点多g的东西,只花了我1个小时。兴冲冲地安装后,编译我最新的程序,然后准备放些内容到Simulator下的Documents文件夹下进行测试,问题来了。整个Library目录从用户目录下完全消失了。难道Apple又来了个“乾坤大挪移”?经过研究发现,原来Library目录还在原来的地方,只是被Apple隐藏起来了,这点非常令人不解,其系统下的Library目录都没有隐藏,用户目录下的Library倒被隐藏了。

    解决方法非常简单:

    chflags nohidden $HOME/Library

    再打开Finder,你就可以在你的用户目录下看到Library了。

     
  • Xcode不支持iPhoe OS 3.2.1的解决方法

    最近iPad升级到iPhone 3.2.1,今天准备进行真机调试,猛然发现Xcode下出现下列错误:


    The version of iPhone OS on “xxxx” does not match any of the versions of iPhone OS supported for development with this copy of Xcode. Please restore the device to a version of the OS listed below. If necessary, the latest version of Xcode is available here.


    Google 了一下,发现是3.2.1的目录在DeviceSupport下不存在。解决办法是用最接近的OS版本使用ln命令进行链接。不过在操作过程中有两个问题:


    1. 不知什么原因,ln -s 命令后总是为文件而不是目录
    2. 不知OS 3.2的build number


    于是,采用最笨但最为有效的方法:


    在/Developer/Platforms/iPhoneOS.platform/DeviceSupport目录下创建3.2.1目录,然后,将3.2下所有文件及目录复制到3.2.1下,重新启动Xcode,问题解决。

     
  • 不通过App Store发布程序

    在一些情况下,我们需要不通过App Store发布程序,比如:


    1. 发布前的测试
    2. 企业内部自用软件,不需要发布到App Store


    非正规的做法当然是“越狱”,但是更为正式的做法是使用Ad-Hoc。至于怎样创建Ad-Hoc provision文件,不在本文讨论的范围内。本文讨论的是怎样安装Ad-hoc发布的程序。通常的做法是:


    1. 开发者将Xcode编译的Ad-Hoc程序.app文件压缩后与.mobileprovision一起传给用户。
    2. 用户拖动.mobileprovision文件到iTunes下的资料库应用程序
    3. 将压缩的.app文件解压,然后将整个.app文件夹拖动到iTunes下的资料库应用程序


    通常这对于Mac用户没有什么问题,但有时Windows用户会遇到一些问题。所以更好的做法是将.app制作成.ipa与.mobileprovision文件一同寄给用户。下面是制作ipa的步骤:


    mkdir Payload
    cp -rp MyApplication.app Payload/
    zip -r MyApplication.ipa iTunesArtwork Payload
    


    需要注意的是这里使用的是zip命令而不是Find中“Compress”选项,因为它会添加一些额外的内容。另外iTunesArtwork是一个512×512的png文件(注意无后缀),它将在iTunes中增加一个图标,所以这并不是必需的。

     
  • 真机安装测试iPhone应用程序

    前两天有朋友问我有关怎样在真机上加载和调试iPhone程序的问题,实际上有两个方法:


    1. 申请ADC帐号,购买iDP(iPhone Develop Program)

    2. 在“越狱”的iPhone上安装程序


    本准备写一篇教程,但在网上搜了一下,找到一些链接,为尊重原作者的劳动,这里我仅给出链接(但是否是原始链接,我就不得而知了,因为有许多网站并未表明原始地址。对此,小小地鄙视一下!)


    从零开始开发iPhone,教你如何在真机调试iPhone应用程序


    简单明了SDK2.2.1无99刀证书真机运行方法图文教程

     
  • “完美”安装雪豹,Windows 7双系统再续 – 开启QE/CI

    经过一天一夜的奋斗,终于搞定QE/CI的启动。在这里必须要感谢一下Insanelymac的riws朋友,从他那里学到了不少东西。下面介绍一下我的步骤,希望对大家有所提示和帮助。


    几个关键


    1. DSDT – 先前试过许多方法都没有效果,于是试一下DSDT方法。安装在/Extra下。此DSDT.aml使用了MSD 和 DTGP方法(请别问我,我也不太懂)。此dsdt.aml仅包括与显示有关的部分,其他部分已删除,使用GMA950(27a2)的用户尽管放心使用。(记住移除EFI String)
    2. 使用原版驱动,安装在/System/Library/Extensions下。将所有与显卡有关的驱动从/Extra/Extensions中删除。安装1.6.6驱动。修复权限后,重启。
    3. 不幸的是,虽然分辨率可调了,但QE/CI仍然没有如愿开启。使用kextstat命令,发现AppleIntelGMA950.kext并没有加载。使用 sudo kextutil /System/Library/Extensions/AppleIntelGMA950.kext 命令手动加载驱动,发现权限错误。使用下列命令:

      sudo su
      chmod -R 755 /System/Library/Extensions/*
      chown -R root:wheel /System/Library/Extensions/*

    4. 重启后,使用-f,但发现AppleIntelGMA950.kext仍没有自动加载。但使用kextutil加载kext时没有错误发生。再次使用kextstat,发现系统同时加载了AppleHDA和VoodooHDA(0.2.53),这两者是有冲突的。所有我删除了AppleHDA.kext后,重启。
    5. 一切正常,什么截屏,看图,水波纹,应有尽有了。有一个简易的方法测试是否QE/CI已经开启,使用OpenMark测试。


    虽然我的无线网卡还不能使用,但通过网卡上网没有问题。现在开始,我又可以开始iPhone的开发工作了。

     
  • “完美”安装雪豹,Windows 7双系统续 – GMA950显卡驱动研究

    我在“完美”安装雪豹,Windows 7双系统一文中提到所谓“完美”的安装是不存在的。昨天,我准备写一篇有关iPhone编程的文章时就发现了问题 – 无法截屏。上网搜了一下,问题的根源在于我的QE/CI没有开启。


    QE指Quartz Extreme,是利用显卡GPU的界面加速引擎。CI是Core Image,指利用显卡GPU的图片处理引擎,它也担任绘制OSX中3D效果的任务(比如水波纹,3D Cube))。至于QE/CI没有开启的后果是什么,除无法截屏外,我目前还不太清楚。(OpenGL ES功能完全正常,我已经测试过了,可能那些使用QE或CI的程序不能正常工作了吧)。


    经过大量的测试,目前我仍然没有找到解决的办法,不过测试的结果可能会对大家有所帮助。先介绍一下我的显卡:

    GPU:         GMA 950
    VRAM:        64MB of Shared System Memory
    
    Device ID:    0x27a2
    Vendor ID:    Intel (0x8086)
    Revision ID:  0x0003
    Resolution:   1440x900
    Depth:        32 Bits Color (ARGB8888)


     测试结果:(全部在32位下测试,我是用安装在Windows 7下的变色龙2.0 rc4启动)

    1. 使用原始驱动1.6.6.25,启动后黑屏,外接显示器能工作但分辨率不对
    2. 移除AppleIntelIntegratedFramebuffer.kext后,能正常启动,但分辨率固定在1024×768,QE/CI未开启
    3. 使用修改后1.4.20.28版AppleIntelIntegratedFramebuffer.kext,出现“五国”,无法进入系统
    4. 将修改后1.4.20.28版AppleIntelIntegratedFramebuffer.kext移动到/Extra/Extensions下后,正常启动,令人惊奇的是分辨率可以修改了,但QE/CI仍然无法开启。
    5. 有人介绍说使用EFI String可以启动QE/CI,于是修改了/Extra下的com.apple.Boot.plist,加入了GMA 950的EFI String,再次进行以上测试,但结果完全一样。


    我的结论:

    • 要正常启动,修改分辨率的关键是AppleIntelIntegratedFramebuffer.kext
    • 是否使用EFI String对开启QE/CI毫无影响


    不知各位朋友,有无在雪豹上成功开启GMA 950的QE/CI的经验?望分享。

     



     
  • “完美”安装雪豹,Windows 7双系统

    我的两台笔记本电脑被偷,其中就包括我用来开发iPhone程序的Macbook Pro。一想起来就有些气愤,实在不想再掏钱去买一台。好在我还有一台闲置的Dell 640m,于是决定装雪豹和Windows 7双系统。


    先看看我的配置:

    CPU:          Intel 酷睿双核 T2300 1.66GHZ
    芯片组:    945GM
    内存:       DDR2 1.5G
    集成显卡:  GMA950 (id 27a2)
    硬盘:       SATA 5400rmp
     

    读文章 »