德尔福柏林EObjectiveC与消息' ObjectiveC类CTCallCenter无法找到

时间:2016-06-07 07:02:37

标签: ios objective-c delphi firemonkey delphi-10.1-berlin

即时使用Delphi 10.1 Berlin

在IOS手机上运行PhoneDialer示例
Embarcadero \ Studio \ 18.0 \ Samples \ Object Pascal \ Mobile Snippets \ PhoneDialer

应用程序在启动时崩溃 如果我在调试模式下运行即可获得此错误

调试器异常通知

Project PhoneDialer引发了异常类EObjectiveC,其中包含消息' ObjectiveC类无法找到CTCallCenter'。

它看起来像是在发生在 FMX.PhoneDialer.iOS 单位

constructor TCocoaPhoneDialerService.Create;
begin
  FCallCenter := TCTCallCenter.Create; // <<<----- blowing up here
  FCallCenter.retain;
  FCallCenter.setCallEventHandler(DoChangeCallState);
end;

有没有人有任何建议?
如果你可以让样本工作,你可以包括实现它的所需代码:)

作为旁注 - 德尔福10.0西雅图运行相同的样本似乎工作正常

1 个答案:

答案 0 :(得分:0)

这个解决方案来自Sergey Krasilnikov 如果您有登录信息,可以在https://quality.embarcadero.com/browse/RSP-15128查看 我还没有尝试过确认它是否有效

从中复制iOSapi.CoreTelephony.pas C:\ Program Files(x86)\ Embarcadero \ Studio \ 18.0 \ source \ rtl \ ios
到您的项目文件夹

按以下方式修改:

implementation

uses
  Posix.Dlfcn;

var
  CoreTelephonyModule: THandle;

const
  CoreTelephonyFwk: string =     '/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony';

initialization
  CoreTelephonyModule := dlopen(MarshaledAString(libCoreTelephony), RTLD_LAZY);

finalization
  dlclose(CoreTelephonyModule);

end.

再次构建项目