天天看點

iPhone無99刀開發 ( zt)

了把 HelloWorld的測試程式放在touch上跑起來,已經快搞了一個星期了,今天終于成功了,要淚奔了,

iPhone無99刀開發 ( zt)

, 查了無數的資料,網上這方面的資料非常少,感覺現在搞iphone開發的好像都直接花99刀搞定了,沒人關注怎樣在jailbreak的iphone上來運作測試app了,shitou就等有拿得出手的app了再花那99刀吧

下面是怎樣在jailbreak的iphone上運作HelloWorld的完整過程:

環境:

  • 我這裡是touch 2.2.1, jailbreak, iphone一樣
  • Max OS 10.5.x, 官方SDK,  Xcode 3.1.2
  • 如果你已經jailbreak了,我想你肯定已經替換了MobileInstallation了,jailbreak的iphone沒有替換MobileInstallation是沒有任何意義的,你還是任何破解程式都運作不了,如果真的沒有替換,就自己先搜下MobileInstallation吧,這裡不說了。

說明:

  • 下面的步驟有的地方操作可能有重複,shitou還沒有一一測試哪些是不必要操作的,不過你還是老老實實的按照下面的步驟執行吧,不然運作不起來就痛苦了。
  • 需要修改的檔案,修改前切換成root使用者并先做個備份,cp file fle.bak 就行了。

開始:

修改檔案/Developer/Platforms/iPhoneOS.platform/Info.plist, 共兩處需要修要,如下所示:

                <key>ARCHS</key>

                <string>armv6</string>

                <key>CODE_SIGN_CONTEXT_CLASS</key>

                <string>XCiPhoneOSCodeSignContext</string>

                <key>COMPRESS_PNG_FILES</key>

                <string>YES</string>

                <key>DEBUG_INFORMATION_FORMAT</key>

                <string>dwarf-with-dsym</string>

                <key>EMBEDDED_PROFILE_NAME</key>

                <string>embedded.mobileprovision</string>

                <key>INFOPLIST_OUTPUT_FORMAT</key>

                <string>binary</string>

                <key>NATIVE_ARCH</key>

                <string>armv6</string>

                <key>PLIST_FILE_OUTPUT_FORMAT</key>

                <string>binary</string>

                <key>PROVISIONING_PROFILE_ALLOWED</key>

                <string>NO</string>

                <key>PROVISIONING_PROFILE_REQUIRED</key>

                <string>NO</string>

                <key>SDKROOT</key>

                <string>iphoneos2.2.1</string>

                <key>STRINGS_FILE_OUTPUT_ENCODING</key>

                <string>binary</string>

                <key>CODE_SIGN_CONTEXT_CLASS</key>

                <string>XCiPhoneOSCodeSignContext</string>

                <key>DEBUG_INFORMATION_FORMAT</key>

                <string>dwarf-with-dsym</string>

                <key>EMBEDDED_PROFILE_NAME</key>

                <string>embedded.mobileprovision</string>

                <key>SDKROOT</key>

                <string>iphoneos2.2.1</string>

                <key>PROVISIONING_PROFILE_ALLOWED</key>

                <string>NO</string>

                <key>PROVISIONING_PROFILE_REQUIRED</key>

                <string>NO</string>

加粗部分為要加入的内容。儲存。

修改另一個檔案/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/SDKSettings.plist, 根據你目前的開發版本進入具體的版本号目錄,修改該檔案中所有*_REQUIRED定義的行,把對應的值,即下一行的值改成NO, 儲存退出。

下面開始建立自己的授權key, 這個官方有具體的步驟怎樣操作的,參考這裡:摸我, 把第一部分 Obtaining a Signing Identity 看完就行了。 在建立的第一步給key命名時最好填iPhone Developer。

然後就可以打開Xcode了,建立一個新項目,建立一個簡單的HelloWorld, 然後就是關鍵了:

選擇Project -> Set Active SDK -> Device - 2.2.1

你還可以設定目前的開發模式(Project -> Set Active Build Configuration)是Debug還是Release, 兩種不同的模式配置檔案也是不一樣的,這裡選擇的是Debug

在Group & Files下你的HelloWorld項目上點右鍵,點Get Info, 打開項目的配置檔案,選擇Build選單,

滾動到Code Signing部分, 點開Code Signing Identity,  設定成如下所示:

Any iPhone OS Device   值為 iPhone Developer

後面的iPhone Developer就是你剛建立的key的名稱。

然後再滾動到最上面,選擇show下拉選單, 選中User-Defined Setting

點選最下面的齒輪, 選擇Add User-Defined Setting, 加入兩組資料, 如下:

PROVISIONING_PROFILE_ALLOWED       NO

PROVISIONING_PROFILE_REQUIRED      NO

關閉目前配置視窗。

下面展開HelloWorld ->  Resources -> Info.plist

編輯Info.plist, 增加一項:

SignerIdentity   值為 Apple iPhone OS Application Signing

儲存。

然後就可以build了, Build -> Build, 中間會提示你是否允許使用你剛建立的key, 當然允許了,此時Xcode視窗的最下面會報告Build的狀态,如果出現紅色的error的話, 說明你剛才的操作有問題,黃色的代表警告,可能會出現:

CodeSign warning: provisioning is not applicable for product type 'Application' in SDK 'Device - iPhone OS 2.2.1'; ignoring...

這個警告不用管它,隻要出現Build succeeded就行了,

最後就是把HelloWorld.app放到iphone上了,這裡你可以使用ssh的方法複制到iphone的/Applications下,不過這裡使用這個方法并沒有成功,即使使用ldid進行簽證也不行,是以就放棄使用ssh這個方法了,你應該:

首先連接配接你的iphone或者touch, 然後在Xcode下, Window -> Organizer, 這時你的iphone或者touch會出現在視窗裡,點選它, 下面的Applications中會顯示你現在已安裝的所有app, 點選+按鈕,選擇剛才已經編譯成功的HelloWorld.app,在HelloWorld/build/Debug-iphoneos下邊, 然後就傳到你的iphone/touch上了,現在就可以在你iphone/touch上運作HelloWorld了,呵呵,大功告成, 下面就可以正式你的iphone開發了。

scp -r /directory/where/you/have/stuff/filename [email protected]##:/directory/where/you/want/stuff/filename 

ssh 192.168.0.xx -l root

cd /Applications

ldid -s xxx.app

chmod 775 xxx.app

繼續閱讀