2015年3月8日 星期日

[C++Builder]解決Firemonkey跨平台專案無法實機發佈軟體到iPhone設備上DEBUG

原先一開始我的專案需求
只專門測試了軟體可以跑在Android、Windows、OSX上面
所以PAServer什麼的都已經弄好了

因為ADR很窮...只有Android手機,後來跟朋友借到一隻iPhone5(有JB),發現選到iOS Device並且Macbook Pro已經正確跟iPhone連線上,PAServer也正確啟動服務可以遠端聯繫了,卻出現:
這問題很雷,特雷
因為這個問題去查Google有九成以上的台灣Blog介紹C++ Builder開發iOS App是沒有介紹這個問題該怎麼解決的...(應該直接了當的說台灣沒幾隻貓在寫C++ Builder開發的iOS App部落格的感覺...)

仔細看了一下編譯噴錯的原因:
iphone developer no identity found(blablabla以下省略超多字)大略意思是在遠端調試的時候,一個叫做iPhoneDeveloper的程式無法正確被傳遞參數並且把App傳入iOS設備導致的

翻了一下PAServer目錄底下:
其實App還有簽章之類的內容PAServer早就幫你弄好了...只是app沒辦法放進去
這時候有兩種做法:

1.有JB狀況下
可選擇再新增一個"payload"的資料夾並且把.app放進去裡面,最後把payload資料夾與另外兩個檔案用壓縮的方式壓縮成一個解壓縮包,並且把副檔名改為.ipa

2.修正iPhonedeveloper無法被喚起的問題
後來爬了大概快四十幾篇文,後來在對岸論壇爬到問題應該出在權限不足沒有簽章權限問題,解決方法如下
首先開啟你的Laucher找到系統程式的“鑰匙圈存取”
在鑰匙圈存取》憑證輔助程式 找到“製作憑證”開啟它
接著名稱寫:iPhone Developer,身份類型:自簽根,憑證類型:代碼簽名
然後其他就預設值,一路按繼續繼續繼續繼續繼續繼續繼續繼續繼續繼續繼續

最後看到完成,再回你的C++ Builder做一次編譯就可以解決這個問題了
(參考:盒子論壇