话说 Apple 在 2017/4/18 的时候推出 XCode 8.3.2(搭配的依旧是 iOS SDK 10.3),最近不知道那个筋不对,想把超过半年以上没异动的 app 专案从 XE8 转上 Tokyo 版本,既然 Delphi 用最新版,当然 macOS、XCode 就顺手更新到最新版本,顺便测试看看有没有甚么问题~

国内几个主要的论坛或是 FB 都没看到有人提出什么问题,对岸虽然有提出已经碰到的问题,但似乎并没有让人感受到无法使用下去,于似乎就'想说上吧!

  升级到 Delphi 10.2 Tokyo 笔记

  Delphi 10.2 非官方补丁合集

  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)在终端机模式下,执行下述两个指令

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
chmod +x /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication

完成上述动作后,在 Berlin Update2 + XCode 8.3.2 就可以顺利编译出 ipa 并且发布到实机上噜,执行起来大致也没遇到什么问题

 

to be continued....

相关文章