Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

1 Neutral
  1. And now I get the following info about the used SSL-libraries: 09:31:23.452 354530816-Info InitSSL from /Applications/icTrainer.app/Contents/MacOS 09:31:23.477 354530816-Info SSL-Version: LibreSSL 2.8.3 But it works.
  2. Don´t ask my why the version number in the file name is 1.0.0. The libs are returning in my logs 1.0.2, so it should be fine. Thanks for the tip with the symlinks, that works fine with MacOS 12.0.
  3. I have a new problem with MacOS12 (older versions are fine). I use the following OpenSSL-Libs to send mails: markieren Code: InitSSL from /Applications/icTrainer.app/Contents/MacOS SSL-Version: OpenSSL 1.0.2s 28 May 2019 and the files have the names markieren Code: libcrypto.1.0.0.dylib libssl.1.0.0.dylib but I get the following error message now: markieren Code: Invalid dylib load. Clients should not load the unversioned libcrpto dylib as it does not have a stable ABI. ... libcrypto.dylib -> here I can´t see the version number. a) What to do? b) Where to get the newest version of 1.0.0-MacOS-64-Libs? Best regards, Philipp Grüße, Philipp
  4. I have found now the reason: - as long as I have a iPad connected to my MacBook via USB-C-Cable, I can't establish a Tethering connection (means I can't discover the iPad and I can't discover the MacOS device) - as soon as I remove the cable, I can establish a Tethering connection and can discover both devices
  5. I have found now the reason: - as long as I have a iPad connected to my MacBook via USB-C-Cable, I can't establish a Tethering connection - as soon as I remove the cable, I can establish a Tethering connection
  6. If there is an access violation at this line, the binding was not successful before. a) Is the IP-address correct for your test? This is the only relevant change by my patches. b) Did your App has the permission to access local network in iOS settings? c) Did your Provision profile has the new permission "com.apple.developer.networking.multicast"? https://developer.apple.com/contact/request/networking-multicast On my devices (I've tested with three iOS devices), it works fine (with and without mobile data).
  7. Since today it's running fine on my side for MacOS Big Sur 11.4 and iOS 14.6. The only thing I have updated this week was XCode. Attached you find all Tethering fixes I have done in my enviroment. TetheringPatches_Delphi_10.4.2.zip
  8. There is no handler assigned to the event. The handler is called. The port is set correctly between both methods in the Tethering implementation. It works perfectly with Windows, Android, iOS 13 and MacOS 10. But now we come to magic: Since today it's running fine on MacOS 11 and iOS 14 also. I haven't updated the code or the OS. But I've updated to newest XCode version this week. This is the only dependency I can imagine that this was the reason. But thanks for your help to get a better understanding of the technic below Tethering. If I run again into problems, this could help.
  9. The OnBeforeBind is requested but not assigned. But this is also the case under Windows and seems to be no problem. The code you are asking for should be constructor TTetheringNetworkServerCommUDP.Create(AIPVersion: TCommIPVersion; const ABindToAddress: string); var I: Integer; LSocket: IIPSocketHandle; LSubnetTable: TArray<TIPv4Subnet>; begin inherited Create; FIPVersion := AIPVersion; FUDPServer := PeerFactory.CreatePeer('', IIPUDPServer, nil) as IIPUDPServer; FUDPServer.ThreadedEvent := True; FUDPServer.OnRead := DoUDPRead; FUDPServer.OnException := DoUDPException; FUDPServer.IPVersion := FIPVersion; if ABindToAddress <> '' then begin FSocketUDP := FUDPServer.Bindings.Add; FSocketUDP.IP := ABindToAddress; FSocketUDP.IPVersion := FIPVersion; end else begin LSubnetTable := GStackPeers.GetIPv4Subnets; if Length(LSubnetTable) < 2 then begin FSocketUDP := FUDPServer.Bindings.Add; FSocketUDP.IPVersion := FIPVersion; end else begin for I := Low(LSubnetTable) to High(LSubnetTable) do begin LSocket := FUDPServer.Bindings.Add; LSocket.IPVersion := FIPVersion; LSocket.IP := LSubnetTable[I].Address; if not assigned(FSocketUDP) then FSocketUDP := LSocket; end; end; end; end; function TTetheringNetworkServerCommUDP.DoStartServer: Boolean; begin Result := True; try FUDPServer.Active := True; except // This is a non conventional method to catch an exception that is in a library that we do not want to have a dependency. // This is considered a HACK and not a good sample of programming techniques. // We are going to let this code handle the exceptions until we add a proper mechanism to propagate the // Indy exceptions through the IPPeerAPI in an ordered and safe manner. on E: Exception do begin Result := False; if not (CheckExceptionName(E, 'EIdCouldNotBindSocket') or CheckExceptionName(E, 'EIdSocketError')) then // Do not translate raise; end; end; end; Do you have an example how to use TIdUDPServer directly? I'm using the Delphi Tethering implementation to hide such complicate issues from me. And now I'm in as I try to solve an error.
  10. Hi Remy, a) I've checked now with "netstat -an". On MacOS10 I get the following entries: Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.2020 *.* LISTEN udp4 0 0 *.2020 *.* On MacOS11 I get the following entry only: Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.2020 *.* LISTEN but there is no entry for *.2020. I can see with Wireshark-Packet-Sniffer that the UDP package for Port 2020 is there but not read on MacOS11 computer. Best regards, Philipp
  11. Hi Remy, do you have any other idea what to check on my side to solve the MacOS11 issue? Can you reproduce on your side the issue with MacOS11? Best regards, Philipp
  12. The command "nc -vnzu 2020-2040" returns "[udp/*] succeeded!" for all ports. But also if the app is not running yet and it's the same response on MacOS 10 as on MacOS 11. I'm using the Delphi-Tethering-implementation and it looks like Start-Listing was successful. FAcceptWait contains the default value, so 1000. I'm wondering if there is any new setting to use for MacOS 11 (e.g. capabilities). I know the Multicast-capability yet but this is only for iOS14.x.
  13. Hi, I'm searching for the reason that TIdUDPListenerThread.UDPRead is not reached in my Tethering app if I run the app under MacOS 11. It's fine with MacOS 10. The FBindind.Select(AcceptWait) is always return false on MacOS11. How can I solve this? Best regards, Philipp TetheringDemo.zip
  14. The question for me is now, why it works with your MacOS Big Sur? Is it a different setting for the Mac or a different setting in the provision profile? Can you see that the method TTetheringNetworkManagerCommunicationThread.DoOnReceiveData reached if you start the app on MacOS, equal if DesktopWWallApp or MobilePhotoApp?
  15. Hi, even after adding the new Apple Multicast-Entitlement it's not possible to use Tethering with MacOS 11.x and iOS 14.x devices on server side. This devices will not be found with the method TTetheringManager.DiscoverManagers requested on client side. It's fine with MacOS 10.x and iOS 13.x devices on server side. You can test this also with the samples - DesktopWallApp (server) - MobilePhotoApp (client) DesktopWallApp Windows Android MacOS 10.x iOS 13.x MacOS 11.x iOS 14.x MobilePhotoApp Windows OK OK OK OK not OK not OK Android OK OK OK OK not OK not OK MacOS 10.x OK OK OK OK not OK not OK iOS 13.x OK OK OK OK not OK not OK MacOS 11.x OK OK OK OK not OK not OK iOS 14.x OK OK OK OK not OK not OK The reason is that the method TTetheringNetworkManagerCommunicationThread.DoOnReceiveData is never reached with this OS versions. This problem crops the usage of Tethering as the biggest part of MacOS/iOS devices are running with the newest OS-version. So Tethering is usable for Windows and Android only. Do anybody knows a solution for this. Best regards, Philipp Activity