Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Hans♫ last won the day on February 7

Hans♫ had the most liked content!

Community Reputation

7 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Yes, I am using an empty app to test it. It only contains a few lines that uses the FBSDK. This is the code. It calls the "ActivateApp" function and tries to show a Facebook Link Sharing Dialog on iOS. But it fails in the linking process (with the errors mentioned earlier), so the code never executes. Note, I had to add some Objective-C classes to the Grijjy unit, as it did not include all the ones I need (the modified unit is attached): uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, iOSapi.UIKit, iOSapi.Foundation, Macapi.Helpers, Grijjy.FBSDK.iOS.API, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; type TForm1 = class(TForm) procedure FormShow(Sender: TObject); end; var Form1: TForm1; implementation {$R *.fmx} function GetRootViewController: UIViewController; begin //Get the main window to be the parent of the facebook window (First window is always the main window) Result := TUIWindow.Wrap(TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication).windows.objectAtIndex(0)).rootViewController; end; procedure ShowShareDialogMode(aContent: Pointer); var lFBSDKShareDialog: FBSDKShareDialog; begin lFBSDKShareDialog := TFBSDKShareDialog.Create; lFBSDKShareDialog.setshareContent(aContent); lFBSDKShareDialog.setFromViewController(GetRootViewController); lFBSDKShareDialog.setMode(FBSDKShareDialogModeNative); if not lFBSDKShareDialog.canShow then //if FB app not installed, fallback to web access lFBSDKShareDialog.setMode(FBSDKShareDialogModeFeedBrowser); lFBSDKShareDialog.Show; end; procedure ShareLink(const aLink: string); var lLinkContent: FBSDKShareLinkContent; begin lLinkContent := TFBSDKShareLinkContent.Create; lLinkContent.SetcontentURL(StrToNSUrl(aLink)); ShowShareDialogMode( NSObjectToID(lLinkContent) ); end; procedure TForm1.FormShow(Sender: TObject); begin TFBSDKAppEvents.OCClass.activateApp; ShareLink(''); end; Grijjy.FBSDK.iOS.API.pas
  2. That is really strange. I wonder what difference we have in our configuration that causes this error to happen for me and not for you? Would it be possible that you make a screen shot of your Project Options? (the "Compiling" page and the "Linking" page)
  3. I tried to use the Grijjy implementation that you linked to earlier, but I still get the same linker error: ___isOSVersionAtLeast", referenced from: -[FBSDKApplicationDelegate application:openURL:sourceApplication:annotation:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); However, I just realize that you do not mention your iOS SDK version. I only have the problem with iOS 12, not with iOS11 and earlier. What iOS SDK do you use?
  4. I am using a Delphi beta under an Embarcadero NDA, so I suppose I cannot reveal what 64 bit target it is 😉
  5. That did the trick! I searched and replaced all occurences of the text "LongWord" with "Uint32" and now it works. Thanks for the input.
  6. It is declared as a TAESBuffer: TAESBuffer = array [0..15] of byte; I would actually expect that trick to work on 64 bit, but I don't know. It was just an example of the code. All I can say is that the total encryption and decryption produces different results on 64 bit than on 32 bit. The reason could be very simple or very complex, but I thought I would first ask here to hear other developers experiences, before I spend more time trying find a way through.
  7. Our software has been using the EldoS AES unit (128 bit key and ECB), to encrypt data stored locally on the users computers (binary data stored in a stream). Now on a 64 bit target, this library no longer works, but our software should still be able to read existing data on the client computers, even when it is the 64 bit edition of our software running. This leaves us with two options: 1) Make the EldoS AES encryption/decryption work with 64 bit. 2) Find another library that can decrypt existing data correctly Add 1: Did anyone convert it to work with 64 bit? It uses some pointer tricks, for example: SomeLongWordVar := PLongWord(@InBuf[0])^ to convert 4 bytes from an array of byte (InBuf) to LongWord. Not sure if that would work in 64 bit. Add 2: I quickly tried to decrypt with Lockbox 3, but get the error: "Invalid ciphertext - block padding is corrupted". Maybe I am using it wrong, but it could also be they are not compatible. Any suggestions what I could use or do to read the old encrypted data from a 64 bit application?
  8. We use it for two things: 1) Allow users to share their achievements in our App on Facebook 2) To report all our in-app sales to Facebook so the ROI can be calculated for our Facebook Ads.
  9. That sounds great. What version of Delphi, XCode and iOS-SDK do you use?
  10. No one using the Facebook SDK in an iOS app? If it works for you, please let me know, then at least there is hope...
  11. Our MacOS app has 20.000+ users (in addition to the Win and iOS users). Each of those had to confirm the message from MacOS that they are using an outdated app... Looking very much forward to the 64 bit compiler!
  12. When I target iOS 12 I get linker errors related to the Facebook SDK, while linking towards iOS11.2 works fine. I hoped that Delphi 10.3.1 fixed it, but it didn't so now I ask here. What can it be? I am using: Delphi 10.3.1 XCode 10.1 (10B61) SDK iOS12.0 The SDK is included by setting "Options passed to the LD linker" (in: Project Options > Building > Delphi Compiler > Linking) to "-ObjC -lz -framework FBSDKCoreKit -weak_framework Bolts" The errors I get with different versions of the Facebook iOS SDK: FBSDK 4.40 (latest SDK) Error: "___isOSVersionAtLeast", referenced from: -[FBSDKApplicationDelegate application:openURL:options:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKApplicationDelegate application:openURL:sourceApplication:annotation:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKApplicationDelegate applicationDidBecomeActive:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); ___51-[FBSDKApplicationDelegate openURL:sender:handler:]_block_invoke in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKApplicationDelegate openURLWithSafariViewController:sender:fromViewController:handler:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKWebDialog _applicationFrameForOrientation] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKWebDialog.o); -[FBSDKPaymentProductRequestor logTransactionEvent:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKPaymentObserver.o); ... FBSDK 4.36 Error: "___isOSVersionAtLeast", referenced from: -[FBSDKApplicationDelegate application:openURL:sourceApplication:annotation:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKApplicationDelegate applicationDidBecomeActive:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKApplicationDelegate openURLWithSafariViewController:sender:fromViewController:handler:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o); -[FBSDKPaymentProductRequestor logTransactionEvent:] in Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKPaymentObserver.o); FBSDK 4.15 It works, but this SDK version is deprecated.
  13. Hans♫

    Migration tool: Access is denied

    Excellent point! - You are right, I just typed in a file name without specifying the path, and that was the reason. After having specified a destination filename WITH path, it works fine! Thank you for pointing me in that direction.
  14. Exporting my 10.3 settings before upgrading to 10.3.1, the Migration tool shows the text "Generating the migration file... Access is denied" What can it be?
  15. Thank you for your persistence Dalija. I have a heart for Delphi too, and I somewhat regret that I posted the image, because I still have no proof if it is our code or Delphi code that fails. With the graph I am basically bashing 10.3 RIO because I am tired of its quality. Our database access uses exactly the same code on Windows, Mac and iOS. No crashes detected or reported on Windows and Mac. But as you said, iOS is just waiting for a reason to take your app out. It is a lot more strict on everything.