2012年7月24日 星期二

如何將自己開發的ios app放到jail broken (jb) 的手機上測試

最近跟隨潮流研究了一下如何寫ios app

寫了一個小程式後要放到手機上測試才發現

根據apple的規定 開發app必須要繳$99USD/year的保護費

即使app沒有要上架的打算 只是自己要用

只要想把app灌到手機裡測試 就必須要繳費才行

不過既然手機已經jail break了 沒道理無法裝自己想裝的程式才對

所以上網查了一下方法 找到網頁大多是針對比較舊版的xcode/ios

除了這個wiki頁面http://iphonedevwiki.net/index.php/Xcode

根據他的步驟 我在xcode 4.3.3/ ios 5.1.1試過以後發現可以work

所以發個圖文教學分享一下 不過事實上我也不清楚每個步驟實際的目的是做什麼

所以擔心的話請先備份系統 出了什麼事我無法負責XD

---

步驟一

開啟"鑰匙圈存取" (應用程式->工具程式->鑰匙圈存取)

在工具列選擇鑰匙圈存取->憑證輔助程式->製作憑證
隨便打一個名稱(iPhone Developer) 身分類型選自簽根 憑證類型選代碼簽名(code signing) 

勾選覆蓋預設值 然後一直按下一步按到完成為止


步驟二

將/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

裡面的XCiPhoneOSCodeSignContext都改成XCCodeSignContext

不知道怎麼作的可以先打開"終端機" (應用程式->工具程式->終端機)

輸入以下指令

sudo vi /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

(被要求的話輸入系統密碼)

:%s/XCiPhoneOSCodeSignContext/XCCodeSignContext/g

:wq

步驟三


解壓縮後把檔案放到/usr/local/bin/ 底下

不知道怎麼作的解壓縮後一樣打開"終端機" 輸入以下指令

mkdir -p /usr/local/bin/

mv ~/Downloads/ldid /usr/local/bin/

步驟四

在/usr/local/bin/ 底下建立一個叫ldid3.py的檔案 輸入以下內容 並開啟執行權限

#!/usr/bin/env python
 
from sys import argv
from subprocess import check_call
from os.path import basename, splitext, join
from tempfile import NamedTemporaryFile
 
app = argv[-1]
obj_path = join(app, splitext(basename(app))[0])
 
if '-gta' not in argv:
    check_call(['/usr/local/bin/ldid', '-S', obj_path])
else:
    with NamedTemporaryFile() as f:
        f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>get-task-allow</key>
    <true/>
  </dict>
</plist>
        """)
        check_call(['/usr/local/bin/ldid', '-S' + f.name, obj_path])


終端機指令:

vi /usr/local/bin/ldid3.py

i

(cmd+c 複製上面的code)

(cmd+v 在終端機貼上)

:wq

chmod 755 /usr/local/bin/ldid3.py

步驟五

開啟/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
Developer/Library/Xcode/PrivatePlugIns/iPhoneOS Build System Support.xcplugin/Contents/Resources/iPhoneCodeSign.xcspec

將裡面的CommandLine = "/usr/bin/codesign" 改成CommandLine = "/usr/local/bin/ldid3.py"

終端機指令:

sudo vi /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/Resources/iPhoneCodeSign.xcspec

(被要求的話輸入系統密碼)

:%s/\/usr\/bin\/codesign/\/usr\/local\/bin\/ldid3.py/g

:wq


步驟六

利用ifunbox之類的軟體 打開在jailbroken的ios device的檔案系統

在/var/mobile/底下建立一個名叫tdmtanf的檔案或資料夾



步驟七

在寫好的app的project設定底下 將code signing改成步驟一所建立的憑證



步驟八

打開xcode右上角的Organizer


連上ios device 按下Use for Development


要輸入apple id的時候直接按cancel就好

經過這一連串繁複的步驟後 理論上就可以開心的在手機上使用自己的app了:D

希望大家都可以成功把程式裝到手機上!

1 則留言:

  1. 請問, 如果沒有apple電腦, 只有pc, 有沒有任何方法可以寫程式給自己的ipad用?

    回覆刪除