Access Violation Error while trying to consume a SOAP Web Service from a 64-Bit IOS

4

I have had a problem since March of this year and that is when trying to consume a Web Service done in C # from an App made in Delphi sends me a Access Violation whenever I call any method of that service. The web service unit was imported using the Wizard of Embarcadero Rad Studio , which generates several ttremotable methods.

However the application works in Windows , MacOS , Android and IOS devices 32 -Bits , but it always fails on IOS devices of 64-Bits . I have updated the versions of Embarcadero Rad Studio but the problem persists.

The code I leave below, I omitted some methods because the body was too big to publish.

  ArrayOfClDetallePedidoComercial = array of clDetallePedidoComercial;   { "http://tempuri.org/"[GblCplx] }


  // ************************************************************************ //
  // XML       : clPagoMaestroComercial, global, <complexType>
  // Namespace : http://tempuri.org/
  // ************************************************************************ //
  clPagoMaestroComercial = class(TRemotable)
  private
    FIdFormaPago: Integer;
    FReferenciaPago: string;
    FReferenciaPago_Specified: boolean;
    FFechaHoraPago: TXSDateTime;
    FImporte: TXSDecimal;
    FIdReferencia: Integer;
    FTipoReferencia: string;
    FTipoReferencia_Specified: boolean;
    FFormaPago: string;
    FFormaPago_Specified: boolean;
    procedure SetReferenciaPago(Index: Integer; const Astring: string);
    function  ReferenciaPago_Specified(Index: Integer): boolean;
    procedure SetTipoReferencia(Index: Integer; const Astring: string);
    function  TipoReferencia_Specified(Index: Integer): boolean;
    procedure SetFormaPago(Index: Integer; const Astring: string);
    function  FormaPago_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property IdFormaPago:    Integer      read FIdFormaPago write FIdFormaPago;
    property ReferenciaPago: string       Index (IS_OPTN) read FReferenciaPago write SetReferenciaPago stored ReferenciaPago_Specified;
    property FechaHoraPago:  TXSDateTime  read FFechaHoraPago write FFechaHoraPago;
    property Importe:        TXSDecimal   read FImporte write FImporte;
    property IdReferencia:   Integer      read FIdReferencia write FIdReferencia;
    property TipoReferencia: string       Index (IS_OPTN) read FTipoReferencia write SetTipoReferencia stored TipoReferencia_Specified;
    property FormaPago:      string       Index (IS_OPTN) read FFormaPago write SetFormaPago stored FormaPago_Specified;
  end;



  // ************************************************************************ //
  // XML       : clDetallePedidoComercial, global, <complexType>
  // Namespace : http://tempuri.org/
  // ************************************************************************ //
  clDetallePedidoComercial = class(TRemotable)
  private
    FIdPedido: Integer;
    FIdProducto: Integer;
    FCantidad: TXSDecimal;
    FPrecioUnitario: TXSDecimal;
    FInicial: TXSDecimal;
    FActual: TXSDecimal;
    FCambios: TXSDecimal;
    FNumeroProducto: string;
    FNumeroProducto_Specified: boolean;
    FProducto: string;
    FProducto_Specified: boolean;
    FDescripProducto: string;
    FDescripProducto_Specified: boolean;
    FPorcDescuento: TXSDecimal;
    FImpuestos: TXSDecimal;
    FSubTotal: TXSDecimal;
    FImporte: TXSDecimal;
    FIdDetallePedido: Integer;
    FIEPS: TXSDecimal;
    FDescuento: TXSDecimal;
    procedure SetNumeroProducto(Index: Integer; const Astring: string);
    function  NumeroProducto_Specified(Index: Integer): boolean;
    procedure SetProducto(Index: Integer; const Astring: string);
    function  Producto_Specified(Index: Integer): boolean;
    procedure SetDescripProducto(Index: Integer; const Astring: string);
    function  DescripProducto_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property IdPedido:        Integer     read FIdPedido write FIdPedido;
    property IdProducto:      Integer     read FIdProducto write FIdProducto;
    property Cantidad:        TXSDecimal  read FCantidad write FCantidad;
    property PrecioUnitario:  TXSDecimal  read FPrecioUnitario write FPrecioUnitario;
    property Inicial:         TXSDecimal  read FInicial write FInicial;
    property Actual:          TXSDecimal  read FActual write FActual;
    property Cambios:         TXSDecimal  read FCambios write FCambios;
    property NumeroProducto:  string      Index (IS_OPTN) read FNumeroProducto write SetNumeroProducto stored NumeroProducto_Specified;
    property Producto:        string      Index (IS_OPTN) read FProducto write SetProducto stored Producto_Specified;
    property DescripProducto: string      Index (IS_OPTN) read FDescripProducto write SetDescripProducto stored DescripProducto_Specified;
    property PorcDescuento:   TXSDecimal  read FPorcDescuento write FPorcDescuento;
    property Impuestos:       TXSDecimal  read FImpuestos write FImpuestos;
    property SubTotal:        TXSDecimal  read FSubTotal write FSubTotal;
    property Importe:         TXSDecimal  read FImporte write FImporte;
    property IdDetallePedido: Integer     read FIdDetallePedido write FIdDetallePedido;
    property IEPS:            TXSDecimal  read FIEPS write FIEPS;
    property Descuento:       TXSDecimal  read FDescuento write FDescuento;
  end;



  // ************************************************************************ //
  // XML       : clZonaComercial, global, <complexType>
  // Namespace : http://tempuri.org/
  // ************************************************************************ //
  clZonaComercial = class(TRemotable)
  private
    FIdZona: Integer;
    FNombre: string;
    FNombre_Specified: boolean;
    procedure SetNombre(Index: Integer; const Astring: string);
    function  Nombre_Specified(Index: Integer): boolean;
  published
    property IdZona: Integer  read FIdZona write FIdZona;
    property Nombre: string   Index (IS_OPTN) read FNombre write SetNombre stored Nombre_Specified;
  end;

  ArrayOfClZonaComercial = array of clZonaComercial;   { "http://tempuri.org/"[GblCplx] }


  // ************************************************************************ //
  // XML       : clPedidoComercial, global, <complexType>
  // Namespace : http://tempuri.org/
  // ************************************************************************ //
  clPedidoComercial = class(TRemotable)
  private
    FIdPedido: Integer;
    FFechaHora: TXSDateTime;
    FIdCliente: Integer;
    FFotoA: TByteDynArray;
    FFotoA_Specified: boolean;
    FFotoD: TByteDynArray;
    FFotoD_Specified: boolean;
    FLatA: Single;
    FLonA: Single;
    FLatD: Single;
    FLonD: Single;
    FFechaHoraTermino: TXSDateTime;
    FImporteTotal: TXSDecimal;
    FSaldo: TXSDecimal;
    FImportePagado: TXSDecimal;
    FRazonSocial: string;
    FRazonSocial_Specified: boolean;
    FReferencia: string;
    FReferencia_Specified: boolean;
    FSubTotal: TXSDecimal;
    FImporteImpuestos: TXSDecimal;
    FImporteImpuestosEsp: TXSDecimal;
    Fobservaciones: string;
    Fobservaciones_Specified: boolean;
    procedure SetFotoA(Index: Integer; const ATByteDynArray: TByteDynArray);
    function  FotoA_Specified(Index: Integer): boolean;
    procedure SetFotoD(Index: Integer; const ATByteDynArray: TByteDynArray);
    function  FotoD_Specified(Index: Integer): boolean;
    procedure SetRazonSocial(Index: Integer; const Astring: string);
    function  RazonSocial_Specified(Index: Integer): boolean;
    procedure SetReferencia(Index: Integer; const Astring: string);
    function  Referencia_Specified(Index: Integer): boolean;
    procedure Setobservaciones(Index: Integer; const Astring: string);
    function  observaciones_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property IdPedido:            Integer        read FIdPedido write FIdPedido;
    property FechaHora:           TXSDateTime    read FFechaHora write FFechaHora;
    property IdCliente:           Integer        read FIdCliente write FIdCliente;
    property FotoA:               TByteDynArray  Index (IS_OPTN) read FFotoA write SetFotoA stored FotoA_Specified;
    property FotoD:               TByteDynArray  Index (IS_OPTN) read FFotoD write SetFotoD stored FotoD_Specified;
    property LatA:                Single         read FLatA write FLatA;
    property LonA:                Single         read FLonA write FLonA;
    property LatD:                Single         read FLatD write FLatD;
    property LonD:                Single         read FLonD write FLonD;
    property FechaHoraTermino:    TXSDateTime    read FFechaHoraTermino write FFechaHoraTermino;
    property ImporteTotal:        TXSDecimal     read FImporteTotal write FImporteTotal;
    property Saldo:               TXSDecimal     read FSaldo write FSaldo;
    property ImportePagado:       TXSDecimal     read FImportePagado write FImportePagado;
    property RazonSocial:         string         Index (IS_OPTN) read FRazonSocial write SetRazonSocial stored RazonSocial_Specified;
    property Referencia:          string         Index (IS_OPTN) read FReferencia write SetReferencia stored Referencia_Specified;
    property SubTotal:            TXSDecimal     read FSubTotal write FSubTotal;
    property ImporteImpuestos:    TXSDecimal     read FImporteImpuestos write FImporteImpuestos;
    property ImporteImpuestosEsp: TXSDecimal     read FImporteImpuestosEsp write FImporteImpuestosEsp;
    property observaciones:       string         Index (IS_OPTN) read Fobservaciones write Setobservaciones stored observaciones_Specified;
  end;

  ArrayOfClPagoComercial = array of clPagoComercial;   { "http://tempuri.org/"[GblCplx] }
  ArrayOfClPagoMaestroComercial = array of clPagoMaestroComercial;   { "http://tempuri.org/"[GblCplx] }


  // ************************************************************************ //
  // XML       : clPagoComercial, global, <complexType>
  // Namespace : http://tempuri.org/
  // ************************************************************************ //
  clPagoComercial = class(TRemotable)
  private
    FIdReferencia: Integer;
    FIdFormaPago: Integer;
    FFechaHoraPago: TXSDateTime;
    FReferenciaPago: string;
    FReferenciaPago_Specified: boolean;
    FImporte: TXSDecimal;
    FFormaPago: string;
    FFormaPago_Specified: boolean;
    procedure SetReferenciaPago(Index: Integer; const Astring: string);
    function  ReferenciaPago_Specified(Index: Integer): boolean;
    procedure SetFormaPago(Index: Integer; const Astring: string);
    function  FormaPago_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property IdReferencia:   Integer      read FIdReferencia write FIdReferencia;
    property IdFormaPago:    Integer      read FIdFormaPago write FIdFormaPago;
    property FechaHoraPago:  TXSDateTime  read FFechaHoraPago write FFechaHoraPago;
    property ReferenciaPago: string       Index (IS_OPTN) read FReferenciaPago write SetReferenciaPago stored ReferenciaPago_Specified;
    property Importe:        TXSDecimal   read FImporte write FImporte;
    property FormaPago:      string       Index (IS_OPTN) read FFormaPago write SetFormaPago stored FormaPago_Specified;
  end;


  // ************************************************************************ //
  // Namespace : http://tempuri.org/
  // soapAction: http://tempuri.org/%operationName%
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // use       : literal
  // binding   : wsComercialSoap
  // service   : wsComercial
  // port      : wsComercialSoap
  // URL       : http://www.ideasys.com.mx/ideaposws/wsComercial.asmx
  // ************************************************************************ //
  wsComercialSoap = interface(IInvokable)
  ['{1A05E5F4-63DC-6861-5FB7-9D690032A85A}']
    function  ObtenerClientes(const licencia: string; const usuario: string; const clave: string; const nombreCliente: string; const idDispositivo: string): ArrayOfClClienteComercial; stdcall;
    function  ObtenerProductos(const licencia: string; const usuario: string; const clave: string; const descripProducto: string; const idDispositivo: string): ArrayOfClProductoComercial; stdcall;
    function  AgregarCliente(const licencia: string; const usuario: string; const clave: string; const nombre: string; const lista: Integer; const CNOMBRECALLE: string;
                             const CNUMEROEXTERIOR: string; const CNUMEROINTERIOR: string; const CCOLONIA: string; const CCODIGOPOSTAL: string; const CTELEFONO1: string;
                             const CTELEFONO2: string; const CTELEFONO3: string; const CEMAIL: string; const CDIRECCIONWEB: string; const CPAIS: string;
                             const CESTADO: string; const CCIUDAD: string; const CMUNICIPIO: string; const FrecuenciaVisita: Integer; const idDispositivo: string;
                             const idZona: Integer): respuesta; stdcall;
    function  AgregarPedido(const licencia: string; const usuario: string; const clave: string; const FechaHora: TXSDateTime; const idCliente: Integer; const fotoA: TByteDynArray;
                            const fotoD: TByteDynArray; const latA: Single; const lonA: Single; const latD: Single; const lonD: Single;
                            const FechaHoraTermino: TXSDateTime; const observaciones: string; const idDispositivo: string): respuesta; stdcall;
    function  AgregarDetallePedido(const licencia: string; const usuario: string; const clave: string; const idPedido: Integer; const idProducto: Integer; const cantidad: TXSDecimal;
                                   const precioUnitario: TXSDecimal; const cantidadInicial: TXSDecimal; const cantidadActual: TXSDecimal; const cantidadCambios: TXSDecimal; const idDispositivo: string
                                   ): respuesta; stdcall;
    function  AgregarPagoMaestro(const licencia: string; const usuario: string; const clave: string; const formaPago: string; const referenciaPago: string; const fechaPago: TXSDateTime;
                                 const importe: TXSDecimal; const idReferencia: Integer; const tipoReferencia: string; const idDispositivo: string): respuesta; stdcall;
    function  ObtenerSaldoPorClienteyPedido(const licencia: string; const usuario: string; const clave: string; const idCliente: Integer; const idPedido: Integer; const idDispositivo: string
                                            ): respuesta; stdcall;
    function  ObtenerPedidosConSaldo(const licencia: string; const usuario: string; const clave: string; const idDispositivo: string): ArrayOfClPedidoComercial; stdcall;
    function  ObtenerPagosPorPedido(const licencia: string; const usuario: string; const clave: string; const idPedido: Integer; const idDispositivo: string): ArrayOfClPagoComercial; stdcall;
    function  ObtenerPagosMaestros(const licencia: string; const usuario: string; const clave: string; const idDispositivo: string): ArrayOfClPagoMaestroComercial; stdcall;
    function  ObtenerDetallesPedidoPorPedido(const licencia: string; const usuario: string; const clave: string; const idPedido: Integer; const idDispositivo: string): ArrayOfClDetallePedidoComercial; stdcall;
    function  ModificarReferenciaPedido(const licencia: string; const usuario: string; const clave: string; const idPedido: Integer; const referencia: string; const idDispositivo: string
                                        ): respuesta; stdcall;
    function  ObtenerPedidosConSaldoPorFechas(const licencia: string; const usuario: string; const clave: string; const fechaInicial: TXSDateTime; const fechaFinal: TXSDateTime; const idDispositivo: string
                                              ): ArrayOfClPedidoComercial; stdcall;
    function  ObtenerProductosPorVendedor(const licencia: string; const usuario: string; const clave: string; const descripProducto: string; const idDispositivo: string): ArrayOfClProductoComercial; stdcall;
    function  ObtenerZonas(const licencia: string; const usuario: string; const clave: string; const idDispositivo: string): ArrayOfClZonaComercial; stdcall;
    function  AgregarCliente2(const licencia: string; const usuario: string; const clave: string; const nombre: string; const lista: Integer; const CNOMBRECALLE: string;
                              const CNUMEROEXTERIOR: string; const CNUMEROINTERIOR: string; const CCOLONIA: string; const CCODIGOPOSTAL: string; const CTELEFONO1: string;
                              const CTELEFONO2: string; const CTELEFONO3: string; const CEMAIL: string; const CDIRECCIONWEB: string; const CPAIS: string;
                              const CESTADO: string; const CCIUDAD: string; const CMUNICIPIO: string; const FrecuenciaVisita: Integer; const idDispositivo: string;
                              const idZona: Integer): Integer; stdcall;
  end;

function GetwsComercialSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): wsComercialSoap;


implementation
  uses System.SysUtils;

function GetwsComercialSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): wsComercialSoap;
const
  defWSDL = 'http://www.ideasys.com.mx/ideaposws/wsComercial.asmx?WSDL';
  defURL  = 'http://www.ideasys.com.mx/ideaposws/wsComercial.asmx';
  defSvc  = 'wsComercial';
  defPrt  = 'wsComercialSoap';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as wsComercialSoap);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;

initialization
  { wsComercialSoap }
  InvRegistry.RegisterInterface(TypeInfo(wsComercialSoap), 'http://tempuri.org/', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(wsComercialSoap), 'http://tempuri.org/%operationName%');
  InvRegistry.RegisterInvokeOptions(TypeInfo(wsComercialSoap), ioDocument);
  { wsComercialSoap.ObtenerClientes }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerClientes', '',
                                 '[ReturnName="ObtenerClientesResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerClientes', 'ObtenerClientesResult', '',
                                '[ArrayItemName="clClienteComercial"]');
  { wsComercialSoap.ObtenerProductos }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerProductos', '',
                                 '[ReturnName="ObtenerProductosResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerProductos', 'ObtenerProductosResult', '',
                                '[ArrayItemName="clProductoComercial"]');
  { wsComercialSoap.AgregarCliente }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'AgregarCliente', '',
                                 '[ReturnName="AgregarClienteResult"]', IS_OPTN);
  { wsComercialSoap.AgregarPedido }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'AgregarPedido', '',
                                 '[ReturnName="AgregarPedidoResult"]', IS_OPTN);
  { wsComercialSoap.AgregarDetallePedido }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'AgregarDetallePedido', '',
                                 '[ReturnName="AgregarDetallePedidoResult"]', IS_OPTN);
  { wsComercialSoap.AgregarPagoMaestro }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'AgregarPagoMaestro', '',
                                 '[ReturnName="AgregarPagoMaestroResult"]', IS_OPTN);
  { wsComercialSoap.ObtenerSaldoPorClienteyPedido }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerSaldoPorClienteyPedido', '',
                                 '[ReturnName="ObtenerSaldoPorClienteyPedidoResult"]', IS_OPTN);
  { wsComercialSoap.ObtenerPedidosConSaldo }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerPedidosConSaldo', '',
                                 '[ReturnName="ObtenerPedidosConSaldoResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerPedidosConSaldo', 'ObtenerPedidosConSaldoResult', '',
                                '[ArrayItemName="clPedidoComercial"]');
  { wsComercialSoap.ObtenerPagosPorPedido }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerPagosPorPedido', '',
                                 '[ReturnName="ObtenerPagosPorPedidoResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerPagosPorPedido', 'ObtenerPagosPorPedidoResult', '',
                                '[ArrayItemName="clPagoComercial"]');
  { wsComercialSoap.ObtenerPagosMaestros }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerPagosMaestros', '',
                                 '[ReturnName="ObtenerPagosMaestrosResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerPagosMaestros', 'ObtenerPagosMaestrosResult', '',
                                '[ArrayItemName="clPagoMaestroComercial"]');
  { wsComercialSoap.ObtenerDetallesPedidoPorPedido }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerDetallesPedidoPorPedido', '',
                                 '[ReturnName="ObtenerDetallesPedidoPorPedidoResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerDetallesPedidoPorPedido', 'ObtenerDetallesPedidoPorPedidoResult', '',
                                '[ArrayItemName="clDetallePedidoComercial"]');
  { wsComercialSoap.ModificarReferenciaPedido }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ModificarReferenciaPedido', '',
                                 '[ReturnName="ModificarReferenciaPedidoResult"]', IS_OPTN);
  { wsComercialSoap.ObtenerPedidosConSaldoPorFechas }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerPedidosConSaldoPorFechas', '',
                                 '[ReturnName="ObtenerPedidosConSaldoPorFechasResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerPedidosConSaldoPorFechas', 'ObtenerPedidosConSaldoPorFechasResult', '',
                                '[ArrayItemName="clPedidoComercial"]');
  { wsComercialSoap.ObtenerProductosPorVendedor }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerProductosPorVendedor', '',
                                 '[ReturnName="ObtenerProductosPorVendedorResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerProductosPorVendedor', 'ObtenerProductosPorVendedorResult', '',
                                '[ArrayItemName="clProductoComercial"]');
  { wsComercialSoap.ObtenerZonas }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'ObtenerZonas', '',
                                 '[ReturnName="ObtenerZonasResult"]', IS_OPTN);
  InvRegistry.RegisterParamInfo(TypeInfo(wsComercialSoap), 'ObtenerZonas', 'ObtenerZonasResult', '',
                                '[ArrayItemName="clZonaComercial"]');
  { wsComercialSoap.AgregarCliente2 }
  InvRegistry.RegisterMethodInfo(TypeInfo(wsComercialSoap), 'AgregarCliente2', '',
                                 '[ReturnName="AgregarCliente2Result"]');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClPedidoComercial), 'http://tempuri.org/', 'ArrayOfClPedidoComercial');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClClienteComercial), 'http://tempuri.org/', 'ArrayOfClClienteComercial');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClProductoComercial), 'http://tempuri.org/', 'ArrayOfClProductoComercial');
  RemClassRegistry.RegisterXSClass(clClienteComercial, 'http://tempuri.org/', 'clClienteComercial');
  RemClassRegistry.RegisterXSClass(respuesta, 'http://tempuri.org/', 'respuesta');
  RemClassRegistry.RegisterXSClass(clProductoComercial, 'http://tempuri.org/', 'clProductoComercial');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClDetallePedidoComercial), 'http://tempuri.org/', 'ArrayOfClDetallePedidoComercial');
  RemClassRegistry.RegisterXSClass(clPagoMaestroComercial, 'http://tempuri.org/', 'clPagoMaestroComercial');
  RemClassRegistry.RegisterXSClass(clDetallePedidoComercial, 'http://tempuri.org/', 'clDetallePedidoComercial');
  RemClassRegistry.RegisterXSClass(clZonaComercial, 'http://tempuri.org/', 'clZonaComercial');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClZonaComercial), 'http://tempuri.org/', 'ArrayOfClZonaComercial');
  RemClassRegistry.RegisterXSClass(clPedidoComercial, 'http://tempuri.org/', 'clPedidoComercial');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClPagoComercial), 'http://tempuri.org/', 'ArrayOfClPagoComercial');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfClPagoMaestroComercial), 'http://tempuri.org/', 'ArrayOfClPagoMaestroComercial');
  RemClassRegistry.RegisterXSClass(clPagoComercial, 'http://tempuri.org/', 'clPagoComercial');

end.
    
asked by Luis Martin 02.01.2017 в 16:46
source

2 answers

1

If the Webservice works for other devices, your problem will not be in the Webservice but in how you connect or communicate from the device that fails.

Some time ago I made an application in Delphi (.NET), I had to consume a Webservices (Java) and I found a similar case. Make sure of this:

  • In the configuration file of your application for 64-bit iOS devices, check the "bindings" in the section: <system.serviceModel> , they are different depending on the type of connection.

  • What gave me the solution was instead of connecting to the Webservice using the bindings, sending the requests in an XML file through a WebRequest with authentication headers.

I hope I have helped you.

    
answered by 17.04.2017 в 16:17
0

Thank you very much for your comments, I communicated with the people of Apple to tell me the process they followed to test my App. Finally I could find the problem, this was that my application does not support IPV6 so in every call to the WS it failed sending an Acces Violation . However, being connected to a IPV4 network if it worked correctly. People in Apple has been quite strict on this issue because if you want your App in the AppStore you have to support both standards, well I have no choice but to make general changes. Thank you very much everyone again for your comments.

    
answered by 06.06.2017 в 19:58