在 iOS 上遇到的升級狀況遠比在 android 的部分多的多了,主要部分有兩個

1.XE8 變更了 iOS Provisioning 的設定方式,雖然變得更人性了,但是卻把之前設定過的值通通丟掉,因此這部分得重新設定才能 compiler 並將 app 發佈到實機上做測試

2.更令人驚恐的是,好不容易完成上述第一點,也發佈到實機上了,結果一執行 app 馬上閃退

上述狀況不只在一個 app 轉換時發生,至少有三個以上,因此可以說是普遍現象...當時真是叫人無法接受啊...

首先說明第一個 iOS Provisioning 部分,這次感覺 EMBT 有把獻上說明文件作的更完整些了,雖然...

官方的文件在此 Completing the Provisioning Page

重點說明

(1)Project Options 中的 Version Info,其中「CFBundleIdentifier」一定要按照 Apple 官方的規定確實填寫,填寫的值就是你當初為這個 app 申請的 APPID,若隨便亂填,有可能在部分 iOS 設備上無法正確安裝

(2)在 Mac 環境中,開啟 Keychain Access(鑰匙圈存取),在 My Certificates(我的憑證)中,確認有 iPhone Distribution 的憑證

(3)開啟 XCode -> Windows -> Devices,確認實機上有安裝相關的 Provisioning Profiles

(3)上述就緒後,理論上你可在 XE8 的 Project -> Options -> Provisioning 設定的頁面,將「Mobile Provision」以及「Developer Certificate」設定為 Auto,由程式自動透過 CFBundleIdentifier 來比對找出正確的,不過筆者還是比較喜歡「眼見為憑」,所以就下拉一下 combobox ,選個正確的吧...

Mobile Provision 選擇完成後,Developer Certificate 也選擇一下吧

一切準備就緒後,就編譯發佈到實機吧...

至於閃退的部分,筆者的解決方式是在 XE8 新增一個 Multi-Device 的專案,然後把舊專案中所有的 pas、fmx 重新加入一遍,確實可以解決閃退的問題,試圖用 compare 的方式比對專案檔(deployproj、dproj)的差異所在,可惜的是這兩個檔案中的項目寫入順序沒有固定,導致比對上非常困難。

新建一個專案的作法固然可以解決 iOS app 閃退的問題,但衍生的問題可不小,包括 project -> options 中所有的參數都得重新設定(涵蓋 andoird、iOS),另外 Deployment 的部分也是,通算下來一個專案照上述方式處理至少得花 10~30 分鐘才能完成...唉...delphi 啊

K.Top 上也有 delphi 同好提出類似問題,解法不外乎兩種,不過筆者沒有用過 XE8 Settings Migration Tool 這個工具就是,不確定可否解決上述狀況

http://delphi.ktop.com.tw/board.php?cid=32&fid=107&tid=107111

 

to be continued....

    縹緲 發表在 痞客邦 留言(0) 人氣()