2011年2月17日 星期四

Using git in Xcode 4

更新日期: 2011/02/18
參考資料:
1. Version Control System with XCode 4 and Git Tutorial | Smart Apps
   http://www.smartapps.co/2011/01/version-control-system-with-xcode-4-and-git-tutorial/

2. Help.GitHub - Generating SSH keys (OSX)
   http://help.github.com/mac-key-setup/

3. Help.GitHub - Working with SSH key passphrases
   http://help.github.com/working-with-key-passphrases/

4. gist: 830465 - gitignore file for Xcode Projects- GitHub
   https://gist.github.com/830465

5. Sample .gitignore files for various projects
   http://sujee.net/tech/articles/gitignore/


一. 環境:
     1. Mac OS X: 10.6.6 Snow Leopard
     2. Xcode: 4.0 GM (Golden Master)
     3. Git: 1.7.4-x86_64-leopard


二. set up a remote depositor(貯藏所):
    A. 在 Github.com 註冊一個賬號: Sign up for GitHub - GitHub
        說明: free for public repositories; paid for private repositories.
  
    B. 建立一個新的 remote Repository:
       進入 Create a New Repository , 建立一個新的 Repository:
       說明: 在此 Project Name 為: git_repository, 會與 四. 所建立的
                local repository 同名(可以用產品名稱來命名).
               

      按下 Create Repository 後, 會出現相關步驟的說明, 這邊先參考, 之後就會作到.
     備註: 二個超連結
             Importing a Subversion Repo? Click here

             When you're done: Continue
             // https://github.com/your-account/git_repository

    C. Generating SSH keys on OS X:
       1. 打開終端機, 先檢查 ssh key 目錄是否存在:
          $ cd ~/.ssh
          $ ls
         
          說明: a. 此目錄下, 如果已有存在的 keypair (預設為: id_rsa, id_rsa.pub),
                       且想要使用的話, 就不必再產生一次.

                   b. 或者除了移除之前的 keypair 外, 也可以作備份:
                      $ mkdir key_backup
                      $ cp id_rsa* key_backup
                      $ rm -rf id_rsa*
 
                   c. ssh 預設會使用 ~/.ssh 目錄下, 名稱為以下的 keys:
                      id_rsa, id_dsaidentity.

       2. 產生 RSA keypair:
          $ ssh-keygen -t rsa -C "lanli0210@gmail.com"

          Generating public/private rsa key pair.

          Enter file in which to save the key (/Users/lanli/.ssh/id_rsa):
          // 直接按 enter, 使用預設值即可

        
          Enter passphrase (empty for no passphrase):  // 輸入 passphrase
          Enter same passphrase again:                         // 再次輸入 passphrase

          Your identification has been saved in /Users/lanli/.ssh/id_rsa.
          Your public key has been saved in /Users/lanli/.ssh/id_rsa.pub.
         
          The key fingerprint is:
          bf:96:7d:8a:16:f7:a7:93:b6:08:23:34:77:c0:b1:fe lanli0210@gmail.com
         
          The key's randomart image is:
          +--[ RSA 2048]----+
          |          .      |
          |         . o     |
          |          +      |
          |         . .     |
          |        S o .    |
          |       . +.o.    |
          |        . +=E. . |
          |         .+=..* .|
          |         oo o+o= |
          +-----------------+
         
          說明:  1. 這時用 ls 就可以看到二個檔案: id_rsa 與 id_rsa.pub
                    2. 如果不使用預設的 key names 或要將 keys 存放在別的目錄,
                       則需要執行: ssh-add path/to/my_key 讓 ssh 知道 keys 在哪裡.

    D. Adding the key to your GitHub account:
       1. 打開 Browser 進入: git hub account page
       2. 先點選左邊 "SSH Public Keys", 再點 "add another public key"
       3. 先從終端機 copy public key: id_rsa.pub 的內容到 clipboard(剪貼板):
          $ cat ~/.ssh/id_rsa.pub | pbcopy
          說明: 如此以確保 key 的內容不會包含換行或空白.

       4. 在 Key 的欄位內貼上 public key 的內容: command + v
      
       5. 如果 Title 欄位留白未輸入的話, 預設會使用 key comment (your email)
          當作 Title.
       6. 接著按下: "Add key" 結果如下, 產生了一個 public key.

    E. 測試 key 是否正常運作: 用 ssh 連到 github.com
       $ ssh git@github.com
      
         The authenticity of host 'github.com (207.97.227.239)' can't be established.
         RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
         Are you sure you want to continue connecting (yes/no)? yes

         Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
        
         接著, 輸入密碼:

         Identity added: /Users/lanli/.ssh/id_rsa (/Users/lanli/.ssh/id_rsa)
         PTY allocation request failed on channel 0
         Hi lanli! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed.

         說明: 有出現上方的 You've successfully authenticated 就代表成功了.


三. 用 Xcode 4 建立一個 Workspace (選擇性):
     A. 特點: 1. 方便組織多個專案.
                   2. 可以在同一個地方幫多個專案 commit changes.
                   3. Xcode 4 Workspace 允許在單一個地方儲存: 你所有的
                      projects, documents, folders, schemes 的 links(連結),
                      它並沒有控制住實際的資料; 只是一種參照到
                      projects, folders, various documents 的自由集合.

     B.步驟: 打開 Xcode 4 > File > New > New Workspace
                 瀏覽要存放的位置後, 然後給個名稱.
                 (在此: 路徑為 /Lanli/RD ; 名稱為: Xcode4projects )


四. 建立 Local Repository:
     A. 下載並安裝 Git: http://git-scm.com/download
         在此採用版本: git-1.7.4-x86_64-leopard

     B. 打開終端機, 告訴 Git 你的 user name 跟 email:
        $ git config --global user.name "Lanli Chen"
        $ git config --global user.email lanli0210@gmail.com

     C. 建立一個新的 local repository:
        說明: 1. 之後的 projects 也會建在此目錄下.
                 2. 可將產品名稱當成 repository 的目錄名稱;
                     此目錄下再建立多個與該產品相關的專案.

        $ mkdir /Lanli/RD/git_repository
        $ cd /Lanli/RD/git_repository
        $ git init    
          // msg: Initialized empty Git repository in /Lanli/RD/git_repository/.git/

        $ touch README
        $ git add README
        $ git commit -m 'first commit'

        [master (root-commit) 3dbca1d] first commit
        0 files changed, 0 insertions(+), 0 deletions(-)
        create mode 100644 README
       
        說明: 1. 查看 git 的用法 -> git --help
                 2. git 的 online manual: Git User's Manual



五. git 環境設定:
    
(僅供參考, Xcode 4 的環境已不太相同, 並且個別專案目錄下也要設定)
     A. .gitignore 檔設定
         $ cd /Lanli/RD/git_repository
         $ touch .gitignore
         $ vi .gitignore
         加入以下的內容:

# Mac OS X Finder and whatnot
.DS_Store
# Sparkle distribution Private Key (Don't check me in!)
dsa_priv.pem
# XCode (and ancestors) per-user config (very noisy, and not relevant)
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
# Generated files
VersionX-revision.h
# build products
build/
*.[oa]
# Other source repository archive directories (protects when importing)
.hg
.svn
CVS
# automatic backup files
*~.nib
*.swp
*~
*(Autosaved).rtfd/
Backup[ ]of[ ]*.pages/
Backup[ ]of[ ]*.key/
Backup[ ]of[ ]*.numbers/

         存檔並退出.

     B. .gitattributes 檔設定
         $ cd /Lanli/RD/git_repository
         $ touch .gitattributes
         $ vi .gitattributes
         加入以下的內容:

*.pbxproj -crlf -diff -merge

         存檔並退出.

         說明: The line in .gitattributes treats your Xcode project file as a binary. This prevents Git from trying to fix newlines, show it in diffs, and excludes it from merges. Note that you will still see it shown as a conflict in merges, although the file won't have changed. Simply commit it and things should be good.


六. 加入 Projects:
     A. 用 Xcode 新增一個(或多個) projects 放在 C. 建立的 local repository 下:
        
Xcode 4 > File > New > New Project
         瀏覽要存放的位置後, 然後給個名稱.
         (在此: 路徑為 /Lanli/RD/git_repository ; 名稱為: helloGit )


     B. 將此專案加入 repository:
        $ cd /Lanli/RD/git_repository
        $ git add helloGit
        $ git commit -m 'helloGit project added'

        [master 0459168] helloGit project added
         18 files changed, 1484 insertions(+), 0 deletions(-)
         create mode 100644 helloGit/helloGit.xcodeproj/project.pbxproj
         create mode 100644 helloGit/helloGit.xcodeproj/xcuserdata/lanli.xcuserdatad/xcschemes/helloGit.xcscheme
         ......


七. 將 project 的 changes push 到 remote Repository:
     A. 語法: git remote add origin git@github.com:username/ProjectName
        $ cd /Lanli/RD/git_repository
        $ git remote add origin git@github.com:lanli/git_repository.git
          // 如果出現訊息: fatal: remote origin already exists.
          // 先執行: git remote rm origin ; 然後再重新 add 一次此步驟.

        $ git push origin master        

         Counting objects: 31, done.
         Delta compression using up to 2 threads.
         Compressing objects: 100% (25/25), done.
         Writing objects: 100% (31/31), 11.42 KiB, done.
         Total 31 (delta 3), reused 0 (delta 0)
         To git@github.com:lanli/git_repository.git
         * [new branch]      master -> master

     B. 接著便可以 refresh account page, 並進入 Public Repositories 內的專案.
   
     C. 點進 git_repository 裡看看:

     D. 可再點進 helloGit 裡看看:
        可看到所有從 local repository 所 commits 進來的檔案.
   

八. Xcode 4 的 Remote Repository:
     A. 到 Xcode 4 的 Repositories 設定頁籤:
         Xcode 4 > 右上方 Organizer > 切到 Repositories tab , 會看到 local repository,
         圖中有顯示:
         Location /Lanli/RD/git_repository
         Type Git

     B. 當有修改 source code, 可先執行 local 的 commit:
        select modified file (檔名右方會有一個 M 符號 ) > 右鍵 >
        Source Control > Commit Select Files.
       
     C. 同步更新到 remote repository:
        $ cd /Lanli/RD/git_repository
        $ git push origin master
  
    說明: 更新 remote Repository 的專案後可看到:
            name                                    age                       message
            helloGitViewController.h      5 minutes ago       add comment test

     D. 如果要從 remote repository 取得最新的版本:
        $ cd /Lanli/RD/git_repository
        $ git pull origin master


2011年2月11日 星期五

ScreenSplitr + iDemo: 把 iPhone 的畫面投影到電腦上

1. 用 Cydia 安裝: ScreenSplitr (free)
   a. ScreenSplitr 說明: 
      ScreenSplitr: Mirror your iPhone screen on a TV using an AV Cable or
      on a Computer using iDemo.

   b. 安裝後, 點選 Screensplitr 會出現 on 的小圖示:

2. 安裝 iDemo: (Trial)
   http://www.plutinosoft.com/idemo
  
   iDemo 說明:       
   iDemo is a tool that simplifies real-time demonstrations of iPhone apps and games.
   iDemo connects to your iPhone over WiFi and mirrors your iPhone screen on your
   desktop
, in real-time – kinda like Steve Jobs during his keynote presentations.

2011年2月9日 星期三

Xcode 4 小記01

1. Xcode 4 編譯後產生的執行檔位置:
   ~/Library/Developer/Xcode/DerivedData/[Your_Project-xxx]/Build/Products/Debug(or Release)-iphoneos(or iphonesimulator)

2011年2月8日 星期二

Xcode 4 Developing for a Jailbroken iOS Device


更新日期: 2011/03/11
適用範圍: Xcode 4 (只需更改相對應的 iOS 版本目錄位置)
參考資料:
1. Developing for a Jailbroken iPhone A to Z (iOS 4.0.1) « alexwhittemore.com
   http://www.alexwhittemore.com/?p=398

2. Xcode 3.2.1 假認證,將自己的Apps放上iphone運行

   http://xspace.uwantx.com/space.php?uid=1&do=blog&id=264


一. 環境:
1. Device: iPod touch 3rd generation (Jailbroken)
2. iOS: 4.2.1
3. Mac OS X: 10.6.6 Snow Leopard
4. Xcode: Xcode 4 and iOS SDK 4.3 Final 


二. 步驟:
1. 在 Mac OS X 上, 開起終端機(Terminal), 執行以下的輸入﹕

   (1). 進入對應的 iOS 版本位置:
        cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/

   (2). 備份屬性設定檔; 會要求輸入密碼:
        sudo cp SDKSettings.plist SDKSettings.plist.backup

   (3). 使用 vi 來編輯:
        sudo vi SDKSettings.plist                        

2. 承上, 找到:

CODE_SIGNING_REQUIRED
YES

…. 與 ....

ENTITLEMENTS_REQUIRED
YES
=> 將 YES 改成 NO 後, 儲存後離開 (按 esc 後輸入 :wq ). // :wq => write & quit

3. 承上, 然後輸入﹕
   (1). cd /Developer/Platforms/iPhoneOS.platform/
   (2). sudo cp Info.plist Info.plist.backup
   (3). sudo vi Info.plist
       => 找到所有的 XCiPhoneOSCodeSignContext(有 3個),
            並將其改成 XCCodeSignContext

4. 承上, 然後輸入﹕
   (1). cd ~/Desktop
   (2). vi script (輸入 i 鍵,進入文本修改狀態)
   (3). 將下面的內容複製到終端中 (Terminal)

#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf “\xc3\x26\x00\x00〃 >> working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support

   (4). 儲存後離開 (按 esc 後輸入 :wq ).
   (5). 調整權限: chmod 777 script

   (6). 執行 ./script, 可看到類似以下的輸出: (如果沒有的話可以嘗試 sudo ./script)
231+1 records in
231+1 records out
115904 bytes transferred in 0.021222 secs (5461534 bytes/sec)
0+0 records in
0+0 records out
0 bytes transferred in 0.000014 secs (0 bytes/sec)

5. Xcode Organizer:
   (1). 在 iPod touch 連接 Mac 情況下開啓 Xcode 4, 將 iPod touch 設成開發使用:

        a. 點擊右上角的 "Organizer".
        b. 接著, 在跳出式窗的 DEVICES 項目下, 選擇自己的 iPod touch 名稱.
        c. 按下中間的 "Using for Development" 按鈕.
        d. 接著,當要你輸入付費開發者的帳號密碼時, 按取消即可.

   (2). 此外, Xcode 的 Organizer 也可能會出現訊息: Unknown iOS detected,
        按下 Collect 即可.

       



訊息: Xcode does not have debugging information for the version of iOS on the device named “Lanli's iPod”. Xcode can collect debugging data from the device to enable development with this version of iOS. This process only needs to be done once per iOS version, and will take several minutes.

說明: 後來我移除 Xcode 後, 並在終端機下移除了 iOS 4.2.1 (8C148) 的相關資料:
         cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport
         sudo rm -rf 4.2.1\ \(8C148\)/

         再重裝 Xcode 時, 接上 iPod touch 後, 就會再出現
Unknown iOS detected
         的訊息, 這時若是按下
"Cancel", Build 時就會出現訊息:
         Xcode cannot run using the selected device.
         NO provisioned iOS device are available. Connect an iOS device or
         choose a an iOS simulator as the destination.

         所以還是要按下 Collect 按鈕.

6. Xcode Build Settings:
   (1). 開啓/建立 一個專案 => 點二下 PROJECT 下的專案名稱
        => 切換到 Build Settings Tab(頁籤).

   (2). 檢查 / 設定 Base SDK: iOS 4.3


   (3). 檢查 / 設定 Code Signing Identity:
         Debug:
         Any iOS SDK: Don't Code Sign

         Release:
         Any iOS SDK: Don't Code Sign

   (4). 檢查 / 設定 Deployment:
         Targeted Device Family: iPhone
         iOS Deployment Targete: iOS 4.2


三. 開始測試:
    1. 設定 active scheme 為 iPod touch 的名稱:
  
    2. 執行 Run:  Build 成功.

    3. app 在實機上跑是正常的, 但是會出現錯誤訊息:
       Error Starting Executable "your app name":


四. 調整 active scheme: (讓錯誤訊息不再出現)
     1. 點下 active scheme 的下拉式選單, 選擇 Edit Scheme...

2. 在跳出來的選單中, 左邊選擇 Run xxx.app, 將右邊的 Info Tab 下的 Debugger 項目,
    值由預設的 GDB 改選成 None.




2011年2月6日 星期日

iPod touch 3rd Jailbreak 4.2.1


由於 Apple 官方釋出了 Xcode 4 GM (Golden Master) 版, 搭配了 iOS SDK 4.2; 並且 iOS 4.3 也快要發表了, 所以即使這次越獄使用的 greenpois0n JB Tool 還是 beta 版, 試過後, 結果是 OK 的.

1. 先將 iPod touch 的 "自動鎖定" 功能, 設成 "永不".
   => 設定 > 一般 > 自動鎖定: 永不

2. 備份 ECID:
   a. 在 Mac OS X 下, 連結 iPod Touch 並且下載 Umbrella:
      http://thefirmwareumbrella.blogspot.com/

   b. (目前版本: 4.21.07). 安裝好 TinyUmbrella 後, 點開進入並選擇你的 iPod Touch,

   c. 接著按下右上方的 "SAVE SHSH" 按鈕.

   d. 儲存好的 SHSH 會各放一份在 CYDIA 的 server 和本機(MAc) 上的
      /Users/<your username>/.shsh
目錄下.

3. 備份 iPod touch 資料:
   a. 執行 Cydia 的 AptBackup
      (可用來備份 Cydia 安裝過的軟體清單, 但仍無法完整回復).

   b. 執行 Cydia 的 AppBackup (備份你所下載的應用程式之存檔與設定)
      (1). 備份後, 需檢查 iPod touch 上
          /private/var/mobile/Library/Preferences/AppBackup
 
          目錄下的所有檔案(含子目錄下的檔案) 日期是否為最新的.
          如果不是的話, 必須利用 sftp 登入到 iPod touch 裡, 並調整
          /private/var/mobile/Library/Preferences/AppBackup
          目錄下的 檔案與目錄權限為 777 (chmod 777 *.*),
          之後再備份一次並檢查日期.

     (2). 承上, 利用 sftp 把 iPod touch 上
         /private/var/mobile/Library/Preferences/AppBackup
         目錄下的 backuptimes.plist 還有 tarballs 資料夾備份到電腦上.

  c. 使用 iTunes 同步並備份 iPod touch 的資料.

4. Download iPod touch Firmware : (在 6.(2) 中會用到)
   http://www.felixbruns.de/iPod/firmware/
   => 在此使用的版本為: iPod touch 3G (4.2.1/8C148)

5. 將 iPod touch 進入 DFU Mode:
   a. 開啟 iTunes 並將手上的 iPod touch 連接至電腦.
   b. 強制關機.(同時按著 "電源開關鍵"[稍先] 及 "主目錄鍵" 不放)
   c. 當 iPod touch 重新啓動後, 放開 "電源開關鍵", 10 秒後, 再放開"主目錄鍵".
   d. 進入 DFU Mode 後及按回復之前, 主機將維持黑屏及不會顯示任何東西.

6. 使用 iTunes 回復 DFU Mode 的 iPod touch:
   a. Mac 電腦: 按下鍵盤 option 鍵, 並同時按下 iTunes 裏的回復按鈕.
   b. 彈出提示框後, 選取剛剛下載的 iPod touch 3G 4.2.1 官方韌體, 並等侍 iTunes 回應.

7. 回復 iPod touch 的備份資料並執行一次同步(與 Umbrella).
   說明: 由於還沒有越獄並安裝 Cydia 與相關軟體, 因此有些軟體目前
             無法安裝是正常的
.

8. 下載 GreenPosi0n:
   http://www.greenpois0n.com/
   目前 Mac 的版本為: greenpois0n RC5 beta 3
   => 解壓縮 gp_mac_rc5_b3.zip: greenpois0n.app

9. 開始越獄:
   a. 將 iPod touch 連接上 Mac, iTunes 可以關閉(結束).

   b. 打開 greenpois0n.app 按下 "Jailbreak" 按鈕, 並依照提示的步驟進行:
      (1). 倒數 5 秒準備時間.
      (2). 按住 "電源鍵" 3 秒.
      (3). 按住 "電源鍵" 不放, 再多按一個 "Home" 鍵 10 秒.  
      (4). 放掉 "電源鍵", 持續按著 "Home" 鍵直到開始執行程式.

   c. 可能會先有一次 Failed 字幕出現, 然後才會繼續跑程式.

   d. 成功後,iPod touch 桌面會出現一個 Loader 的 app, 點進去後,
      就可以下載 Cydia 了.

10. Cydia 設定:
    a. Cydia 開啟後, 選擇 Developer (No Filters).
    b. 重開 Cydia, 若有軟件更新, 將彈出提示框, 選擇 Upgrade Essential,
       再選擇 Confirm.
    c. 注意軟件更新時不要譲主機自動上鎖.
    d. 請再次開啟 Cydia, 按下 Change, 若有軟件更新, 選擇 Upgrade (), 再選擇 Confirm.

11. Cydia 安裝軟體:
    a. OpenSSH: 可在 Mac 上使用 sftp client 的軟體連入 iPod touch 系統中.

    b. AptBackup: 備份你用Cydia安裝的軟體清單.
       說明: (1). 安裝後, 可進入 Aptbackup 選擇 restore,來命令你的 Cydia 將你有
                   安裝的軟體,一一的安裝回去. (因為它檔案存放位置會隨著 iTunes
                   的備份,存回電腦.)
               (2). 其實不太建議 (1) 的做法 , 因為一來軟體可能會有新的名稱與版本;
                   二來, 有些軟體需要先新增資訊源才可安裝. 所以建議一個一個
                   安裝比較保險.


    c. AppBackup: 備份你所下載的應用程式之存檔與設定.

    d. AppSync for OS 4.0+: 讓應用程式 (.ipa / .app) 可直接透過 iTunes 安裝.
       (1). 開啟 Cydia > MANAGE > SOURCES > EDIT > ADD
       (2). 輸入 http://cydia.hackulo.us/ > 按下 Add Source 按鈕 > 若彈出提示框,
           選擇 Add Anyway 即可.
       (3). 完成 Source Update 後, 按下 Return To Cydia, 返回 Source, 再按下
           剛加入的 Sources, 選擇 AppSync for OS 4.0+ 安裝.
       (4). 安裝完成後, 請重新啟動主機.

    e. CyDelete: 可直接在桌面刪除從 Cydia 下載的軟體.

    f. USB Drive: 可當成 USB 硬碟來使用.
      (1). 新增安裝源: http://apt.dmytro.me/
      (2). 安裝 USB Drive 軟體.

    g. afc2add: 可讓應用軟體( iPhone Explorer / DiskAid )瀏覽到 iPod touch 的根目錄.

12. 更改 iPod touch 的 root 密碼:
    a. 確定已用 Cydia 安裝了 OpenSSH.

    b. 共享 Mac Book Pro 的網路給 iPod touch:
       => Mac OS X > 系統偏好設定 > 共享 > Internet 共享
          (都設定好時要勾選, 此時 Mac 本身可能無法上網)
          > 共享來源: 乙太網路; 對使用以下傳輸埠的電腦: AirPort

    c. iPod touch > 設定 > Wi-Fi > 選擇網路: SnowLeopard (同時查看 IP, ex: 10.0.2.2)

    d. Mac OS X > 終端機 > ssh root@10.0.2.2 (default password: alpine)
       => 如果出現以下訊息:
           WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
          (代表, 之前有 jailbreak 過不同的版本並曾登入過 iPod touch,)
          解決辦法: 先移除(這裡用搬移檔案) Mac 上 .ssh 目錄下的檔案, 再登入一次:
          $ cd /Users/lanli/.ssh
          $ mv known_hosts known_hosts_back_20110206

    e. 承上, 鍵入 passwd 來輸入新密碼.
    f. 亦可在 Mac 上使用 sftp client 的軟體連入 iPod touch 系統中.

13. 檢查 AppBackup 儲存的目錄:
    a. 登入 iPod touch 後, 到 AppBackup 目錄下, 檢查其下的檔案與子目錄下的
       檔案日期是否為最新的.
       $ cd /private/var/mobile/Library/Preferences/AppBackup
       $ ls -al

    b. 如果不是的話, 先執行 AppBackup (按下左下角的 ALL => Backup),
       讓他產生該有的檔案.
       (1). 承上, 調整目錄與檔案的權限.
            $ chmod 777 *.* (在 AppBackup 目錄下 )

       (2). 承上, 並將之前 3. 備份 iPod touch 資料: b. 執行 Cydia 的 AppBackup
           所備份的資料, 利用 sftp 傳回 iPod touch 上(覆蓋舊檔).

       (3). 承上, 然後在 AppBackup 軟體裡 按左下角的 ALL => Restore.

14. 使用 iTunes 同步並備份 iPod touch 的資料:
     => 主要是用來同步之前安裝了 JB 後才可安裝的軟體 ^^.

15. 如果想幫 iBook 增加 "英漢字典" 功能的話, 請參考:
      幫 iBooks 增加 英漢字典的文章.