• 初探“狮穴”

    昨晚装上了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了。

     
  • 怎样从ipa中提取PNG文件

    众所周知,ipa实际上就是一个zip文件,通过解压,可以在Payload目录下得到一个app文件,实际上这个app文件就是一个文件夹,当然windows下,用户很容易就知道这一点。在Mac下,用户需要将app更名。进入此目录后,ipa中的所有resource文件都尽收眼底了。不过,所有的png文件都无法读取。这是由于Apple在将png打包加入ipa之前将png以一种特殊格式存放,要读取此格式就要破译Apple所采用的png格式了。

    不过幸运的是,有人已经做了这部分工作,见iPhone PNG Images Normalizer Python,这里是采用python对png进行转换,大家如果有兴趣,可以仔细读一下源代码,如果只是想获取可读的png文件,请在上述网站进行下载或在本地下载ipin.py.zip

    此python程序的使用方法很简单,当然首先系统中要求安装了python。解压ipin.py.zip后,将ipin.py文件复制到刚才解压的包括所有png文件的目录下,然后运行:

    python ipin.py

    回答Y,所有的png将被转换成通常的png格式,这样你使用预览程序就可以看到了。

     
  • 怎样让Mac终端变彩色

    这个话题与iPhone无关,不过我今天心血来潮突然想为终端加点颜色.

    很简单,使用编辑器,比如vi打开~/.bash_profile,加入:

    export CLICOLOR=1
    export LSCOLORS=ExFxCxDxBxegedabagacad

    但这些设置是什么意思呢?下面是解释:

    首先LSCOLORS是十一对字母表示前景和背景颜色,按顺序是:

    directory
    symbolic link
    socket
    pipe
    executable
    block special
    character special
    executable with setuid bit set
    executable with setgid bit set
    directory writable to others, with sticky bit
    directory writable to others, without sticky bit

    字母代表的颜色:

    a black
    b red
    c green
    d brown
    e blue
    f magenta
    c cyan
    h light grey
    A block black, usually shows up as dark grey
    B bold red
    C bold green
    D bold brown, usually shows up as yellow
    E bold blue
    F bold magenta
    G bold cyan
    H bold light grey; looks like bright white
    x default foreground or background

    大家尽可以改成自己喜欢的颜色.

     
  • “完美”安装雪豹,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
     

    读文章 »

     
  • Xcode之宏

    注:宏的使用可以节省代码重复输入工作,还可以为调试带来各种好处。本文列出了几个非常简单实用的宏。
    读文章 »

     
  • 怎样替换Xcode中__MyCompanyName__

    我们知道,Xcode在每个.h和.m文件头都会加上一些发行信息,如姓名,创建日期,公司名等。但公司名是用__MyCompanyName__代表,每个文件都要手工修改十分麻烦。此信息的模板存在/Library/Application Support/Apple/Developer Tools/File Templates下,格式如下:

    1
    2
    3
    4
    5
    6
    7
    8
    /*
     *  «FILENAME»
     *  «PROJECTNAME»
     *
     *  Created by «FULLUSERNAME» on «DATE».
     *  Copyright «YEAR» «ORGANIZATIONNAME». All rights reserved.
     *
     */

    我们当然可以修改此文件。但每次Xcode升级后,此信息就会丢失。我在一本有关Xcode的书中找到一个方法:

    1
    defaults write com.apple.xcode PBXCustomTemplateMacroDefinitions '{ ORGANIZATIONNAME = "Joan Smith"; }'

    另一种方法是通过双击~/Library/Preferences下com.apple.Xcode.plist来修改。

     
  • Xcode提示与技巧1-10

    我的世界被各种各样的便签条,不管是电子的还是纸的,包围着。我总是想方设法记住各种各样的Xcode的便捷键以及各种提示与技巧。编程时,我总是尽量少用鼠标,如果没有这些提示,我就会无所适从了。而这里是记录这些提示与技巧最好的地方了。

    读文章 »

     
  • 将音频转换成CAF格式

    在mac上使用afconvert命令可以将音频文件转换成caf文件。

    afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf

    -f 指定文件格式

    -d 数据格式,@44100指采样率

    -c 通道数