Search code examples
iosdelphiios-simulatorfiremonkeydelphi-10-seattle

EObjectiveC with message 'ObjectiveC class Captuvo could not be found' Delphi Seattle iOS Simulator


I am trying to achieve integration with the Captuvo SDK ( https://www.honeywellaidc.com/HoneywelliOS/developer-resources.html ) , however happens the following error:

Project dyld_sim raised exception class EObjectiveC with message 'ObjectiveC class Captuvo could not be found'.

here is code :

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.

the error happens here:

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

I'm running on a iOS Simulator Delphi Seattle, the libCaptuvoSDK.a file is within the same directory of untCaptuvoSdk.pas

Can someone help me?


Solution

  • the solution is here: http://blog.naver.com/simonsayz/120190032530, iOS Simulator can't use Static Library.