話說 Apple 在 2017/4/18 的時候推出 XCode 8.3.2(搭配的依舊是 iOS SDK 10.3),最近不知道那個筋不對,想把超過半年以上沒異動的 app 專案從 XE8 轉上 Tokyo 版本,既然 Delphi 用最新版,當然 macOS、XCode 就順手更新到最新版本,順便測試看看有沒有甚麼問題~
國內幾個主要的論壇或是 FB 都沒看到有人提出什麼問題,對岸雖然有提出已經碰到的問題,但似乎並沒有讓人感受到無法使用下去,於似乎就'想說上吧!
RAD Studio 10.2 Tokyo Hotfix 更新说明
升級下去,才發現自己真的高估了 EMBT 背後新東家的能力,使用 Tokyo 版本一開始在 Android 版本遇到 GCM 註冊問題不說(三行程式碼就可以重現問題,但在 Tokyo 之前版本沒問題,容後有機會再分享),只好降版退而求其次到 Berlin Update2,好不容易在稍稍調整 Location Sensor 的寫法後,Android 版本算是順利升級上去,但是要測試 iOS 版本的時候,卻連 ipa 都編譯不出來!!!一整個悶,有圖有真相
完整的錯誤訊息是這樣的
[PAClient Error] Error: E0776 Unable to execute '"/usr/bin/xcrun" -sdk iphoneos PackageApplication -v "/Users/user/PAServer/scratch-dir/admin-PAServer/WCRMApp.app" -o "/Users/user/PAServer/scratch-dir/admin-PAServer/WCRMApp.ipa" -sign "iPhone Distribution: WINTON SYSTEM CO., LTD." --embed "/Users/user/Library/MobileDevice/Provisioning Profiles/e540f7c4-ba1b-496f-9f26-7012dc320cfd.mobileprovision"' (Error 72) |
還在想說是不是自己那個環節沒有設定好,努力調整了半天卻不得其門而入,只好求助於 google 大神,首先你可以在官網找到這篇
http://docwiki.embarcadero.com/PlatformStatus/en/Main_Page#iOS_10
其中提到無法建立可以發佈到 apple store 的 App @ Tokyo(Tokyo 都不行了,更何況是 Berlin)
![]() |
實際上不但是 apple store 不行,連 enterprise program 的也是一樣,日期是 3/31,解決方案居然是要求使用者自行想辦法在 mac 上另行安裝 XCode 8.2,然後再自己下指令要求 XCode 變更預設的參數,顯然原廠不是不知道有這個狀況,只是經過一個多月了,居然還沒有修正程式出來?難道不能上架 apple store 的這個狀況算是小問題嗎!
仔細再用 google 查了一下事情原委,原來是 apple 的 XCode 自 8.3 版起,取消使用 PackageApplication 這個功能,而這個功能正是 PAServer 等第三方工具使用命令列的方式呼叫 XCode 打包編譯的方式,因此像 MS 的 Xamarin 也是一樣受影響(只是不知道 MS 改好了沒?)。
小弟不想去安裝 XCode 8.2 那麼大一包來解決這個問題,經過一陣明查暗訪後,採用以下方式就可以在 EMBT 尚未修正前先暫時解決 deploy 的問題
(1)下載下述檔案(8.2 版的PackageApplication)
https://1drv.ms/u/s!Au7-ZAVTW048iNkRTaN7MPI5hfgKyQ
(2)解壓縮之後放到 mac 的 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ 這個目錄
![]() |
(3)在終端機模式下,執行下述兩個指令
|
完成上述動作後,在 Berlin Update2 + XCode 8.3.2 就可以順利編譯出 ipa 並且發佈到實機上嚕,執行起來大致也沒遇到什麼問題
to be continued....