没有 nib 的 iphone 程序

Interface Builder 开始用还觉得酷炫浮华,越用越觉得不对劲,对于刚开始学写 iphone 程序,没有帮助理解代码,反而隐藏了需要知道的内容,然后用线连啊连,连着连着就晕了。另外,重点是,牛人都直接用代码写 GUI 的啊 XD。刚才试了一下不用 nib,只用敲 code,真的可以耶。步骤如下:

1. 新建一个 Window-Based Application 项目

2009-01-07_1714

2. 删掉

1
MainWindow.xib

文件

2009-01-07_1720

3. 删掉

1
Info.plist

里面的

1
Main nib file base name

属性

2009-01-07_1720_1

4. 把

1
main.m

文件中的

1
UIApplicationMain

函数最后一个参数由

1
nil

改为 

1
@"NiblessHelloWorldAppDelegate"

也就是我们的主要 delegate 的类名字

2009-01-07_1722

5. 把

1
NiblessHelloWorldAppAppDelegate.h

文件里的

1
IBOutlet

声明删掉(不删也行)

2009-01-07_1722_1

6. 在

1
NiblessHelloWorldAppDelegate.m

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

2009-01-07_1723

7. Build And Go Go Go。。。

2009-01-07_1739

项目文件打包在这里,请自取。。。

[速记]不用申请 iPhone Developer Program 也可以让程序在手机上跑的方法

前提:

  1. iPhone 已经 jailbreak, 并且 MobileInstallation 文件已被替换
  2. 开发环境是 Xcode
步骤:
  1. 生成一个 Self Signed Certificate, 假设取名为
    1
    <strong>iPhone Developer</strong>
    , 步骤看这里
  2. Xcode 菜单选 Project -> New Build Phase ->New Run Script Build Phase, 然后输入下面代码:
    1
    2
    3
    4
    5
    6
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    platform=/Developer/Platforms/iPhoneOS.platform
    allocate=${platform}/Developer/usr/bin/codesign_allocate
    export CODESIGN_ALLOCATE=${allocate}
    codesign -fs "<strong>iPhone Developer</strong>" ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}
    fi
  3. 1
    Info.plist

    文件加一个属性

    1
    SignerIdentity

    值为

    1
    Apple iPhone OS Application Signing
  4. Build Device Release Target
  5. 随便找个目录, 把程序的 icon 图片重命名为
    1
    iTunesArtwork

    , 同一目录下建一个目录名称叫做

    1
    Payload
    , 将 Build 好的 Device Release 版本的 $(YourAppName).app 文件拽到 Payload 目录, 将 iTunesArtwork 和 Payload 一起打包 zip, 然后改文件名为 $(YourAppName).ipa
  6. 双击 ipa 文件, iTunes 启动, 然后程序就被无情的同步到手机上了. XD
此方法刚在 2.2 版 jb 后的固件上试过, 还很热乎, 欢迎试用…