0

我正在使用 Delphi 10.1 Berlin

只需在 IOS 电话
Embarcadero\Studio\18.0\Samples\Object Pascal\Mobile Snippets\PhoneDialer上运行 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;

有没有人有什么建议?
如果您可以让示例工作,您是否可以包含实现它所需的代码:)

作为旁注 - 运行相同样本的 Delphi 10.0 Seattle 似乎工作正常

4

1 回答 1

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.

再次构建项目

于 2017-01-06T23:33:59.543 回答