EObjectiveC与消息' ObjectiveC类Captuvo无法找到' Delphi Seattle iOS模拟器

时间:2016-03-04 03:30:39

标签: ios delphi ios-simulator firemonkey delphi-10-seattle

我正在尝试与Captuvo SDK(https://www.honeywellaidc.com/HoneywelliOS/developer-resources.html)集成,但是会发生以下错误:

项目dyld_sim引发了异常类EObjectiveC的消息' ObjectiveC类无法找到Captuvo'。

这是代码:

unit untCaptuvoSdk;

interface

uses
   SysUtils, Types, Classes, Math,

   System.TypInfo, // PTypeInfo
   MacApi.ObjectiveC, // TOCGenericImport
   iOSApi.CocoaTypes, // NSObject, NSObjectClass
   iOSApi.Foundation, // NSString
   iOSApi.CoreGraphics, // CGRect
   iOSApi.UIKit, // UIView

   iOSApi.QuartzCore, // {$linkframework QuartzCore}
   iOSApi.CoreMedia, // {$linkframework CoreMedia}
   iOSApi.CoreVideo, // {$linkframework CoreVideo}
   iOSApi.AVFoundation, // {$linkframework AVFoundation}
   MacApi.ObjCRuntime;

type
   Captuvo = interface(NSObject)
      ['{5323D4CD-59A0-4515-B581-CCFB8CF0B1C1}']
   end;

   CaptuvoClass = interface(NSObjectClass)
      ['{18864224-BFAF-4553-A44E-964C6639EEC2}']
      function sharedCaptuvoDevice: Captuvo;
   end;

   TCaptuvoClass = class(TOCGenericImport<CaptuvoClass, Captuvo>)
   end;

{$O-}    
procedure libCaptuvoSDK; cdecl;
  external 'libCaptuvoSDK.a' name 'OBJC_CLASS_$_Captuvo';
{$O+}

implementation

end.

错误发生在这里:

procedure TfrmPrincipal.btnTesteClick(Sender: TObject);
var
   obj: Captuvo;
begin
   obj := TCaptuvoClass.Create;
end;

我在iOS模拟器Delphi Seattle上运行,libCaptuvoSDK.a文件位于untCaptuvoSdk.pas的同一目录下

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

解决方案在这里:http://blog.naver.com/simonsayz/120190032530,iOS模拟器无法使用静态库。

答案 1 :(得分:0)

您应该使用libCaptuvoSDK_Emulator.a进入iOS模拟器版本来试用它。

但实际上我使用libCaptuvoSDK.a可以在iOS模拟器中建立成功。