Jump to content

Dave Nottage

Members
  • Content Count

    1650
  • Joined

  • Last visited

  • Days Won

    37

Everything posted by Dave Nottage

  1. Dave Nottage

    What are you using AI code-gen tools for that's working well?

    Absolutely. Depending on which engines you use, it can recognise this if you "call it out" - why it doesn't realise this from the start is a mystery. I'm having loads of success discovering how to do things that I would otherwise have little or no clue about. Asking the right questions (including follow-up questions), and being able to recognise flaws in the answers, is the key.
  2. Dave Nottage

    Kasti for iOS + Firebase Cloud Messaging issue

    If you're using the Kastri implementation a token is not being received, the most likely cause is that FMX.PushNotification.FCM.iOS has not been patched correctly. See this section of the readme.
  3. This file is associated with Delphi 12. If you're using project that was created in Delphi 12, but in compiling it in Delphi 11.3, you should follow this procedure.
  4. Dave Nottage

    IOS Application to Test Flight and Transporter

    Wherever that information comes from, it's totally wrong.
  5. Dave Nottage

    IOS Application to Test Flight and Transporter

    Yes, .IPA (not .API) files are built with this configuration. You'll need a Distribution Certificate and a Provisioning Profile to match. Please read here: https://docwiki.embarcadero.com/RADStudio/Athens/en/Deploying_Your_iOS_Application_for_Submission_to_the_App_Store
  6. Dave Nottage

    Receiving an 'Unsafe app blocked' message

    There were Windows Phones. If you want an environment where the development requirements are not going to change, that's probably your best option.
  7. Dave Nottage

    Receiving an 'Unsafe app blocked' message

    Once again, it is telling you the problem, i.e. that it is attempting to install the app with a different signature, and even suggests a solution, i.e. uninstall the original app.
  8. Dave Nottage

    Receiving an 'Unsafe app blocked' message

    Most likely you did not edit AndroidManifest.template.xml then, because it does not have a value for targetSdkVersion, it looks like this: <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> More likely you edited AndroidManifest.xml which is generated in the project output folder. AndroidManifest.template.xml is in the root of the project source.
  9. Dave Nottage

    Receiving an 'Unsafe app blocked' message

    The info at that link literally tells you what the problem is, i.e: "Reason for this notification: These Play Protect warnings will show only if the app's targetSdkVersion is more than 2 versions lower than the current Android API level. For example, a user with a device running Android 13 (current API = 33) will be warned when installing any APK that targets API level lower than 31. Android Versions and corresponding API levels can be reviewed on the API level page." You would need to change %targetSdkVersion% in AndroidManifest.template.xml to a value less than 2 versions than the target device, i.e. in your case 29 (Android 10), 30 (Android 11), or 31 (Android 12). Not sure if this will work with XE7 - you might need to upgrade, preferably to Delphi 12.
  10. Dave Nottage

    Receiving an 'Unsafe app blocked' message

    It might help to provide the exact message. Is it one of these at this link?
  11. Dave Nottage

    iOS: Check granted accuracy authorization level

    You can achieve this by writing code that uses CLLocationManager. Create an instance of it, and examine the value of accuracyAuthorization. If it is CLAccuracyAuthorizationReducedAccuracy and your app needs full accuracy, inform the user to: Go to Settings > Privacy & Security > Location Services. Select your app Toggle the Precise Location switch on Example code: uses iOSapi.CoreLocation; procedure TForm1.Button1Click(Sender: TObject); var LManager: CLLocationManager; begin LManager := TCLLocationManager.Create; if LManager.accuracyAuthorization = CLAccuracyAuthorizationReducedAccuracy then // Inform the user end;
  12. Dave Nottage

    java problem starting the blank android application

    I didn't notice before - you have the SDK API level set to android-30 (your first SDK Manager screenshot) - it should be android-34
  13. Dave Nottage

    java problem starting the blank android application

    Delphi 12.1 (no XE in its title) requires the Eclipse Temurin OpenJDK. You can install it via the Delphi menu - Tools | Manage Features - on the right side, scroll the scrollbox all the way to the bottom, check the checkbox for the OpenJDK and click Apply. Once installed, go to the Java tab of the Android SDK settings and configure keytool.exe and jarsigner.exe options to use the OpenJDK (installs by default under C:\Program Files\Eclipse Adoptium.
  14. Seems to me that the info is contradictory - the uses-permission is stating that permission to use the camera may be requested (on Android 6 or higher), but the uses-feature entries are stating that the app doesn't require a device with a camera? EDIT: Even so, having those entries in the manifest works fine for me.
  15. A bit of speculation on my part, but it's possibly a hangover from when Delphi required gdbserver for debugging. The Internet permission is a bit of a misnomer, since it "Allows applications to open network sockets". This part I know from when debugging was broken in Android 8: There is a private IP network between the IDE and gdbserver
  16. Dave Nottage

    Android Invalid APK

    I expect your install of Delphi 12.1 is misconfigured. Try creating a blank app and deploy it to a device.
  17. Dave Nottage

    iphone 17.2.1 an xcode 15.2 issue

    That issue was fixed before the release of Delphi 12. You may be experiencing this issue.
  18. Dave Nottage

    Android 15 and edge-to-edge enforcement

    You could just leave AndroidManifest.template.xml as it is (for now) - is there some reason you need to target API level 35? If you really need to, you could use code from Kastri to implement a workaround, thus: uses DW.UIHelper, DW.Android.Helpers; { TForm1 } procedure TForm1.FormResize(Sender: TObject); begin // This method is used because the device might have Android 15, but the targetSdkVersion might be lower. Use conditionals if targeting other platforms if TAndroidHelperEx.CheckBuildAndTarget(35) then begin Padding.Top := TUIHelper.GetStatusBarOffset; // "Cheat" method for determining whether Portrait or Landscape if Screen.Width < Screen.Height then Padding.Bottom := TUIHelper.GetNavigationBarOffset else Padding.Bottom := 0; end; end; If you don't want to drag the dependent units from Kastri into your app, you could extract the parts of the code that you need.
  19. Dave Nottage

    Android: Use a class from a .jar-File

    This should be: if TJCardLink.JavaClass.isNfcEnabled(context) then // Take whatever action needed if NFC is enabled
  20. Dave Nottage

    macOS SDK

    That's a different scenario to what you first described. What issues? These days Xcode has only the SDKs that are shipping at the time of the release of that version of Xcode. If you're using the Community Edition (as indicated in your Delphi Praxis profile), it should work with the current version of Xcode anyway, so it might be easier to resolve the issue you mentioned.
  21. Dave Nottage

    macOS SDK

    Do you mean SDK Manager? The transfer process does not re-transfer anything that already exists. Even if it did, I expect that would be a problem only if it takes a long time to transfer them.
  22. Dave Nottage

    Delphi 11.3 issue with iOS Today Extension widgets

    Anyone who is interested in the work in progress (which is being tested now) should message me privately.
  23. Dave Nottage

    Android upcoming 16 KB page sizes support

    A perfect scenario to add to the Quality Portal. Make sure you first search for any existing reports 🙂
  24. Dave Nottage

    Weird new IOS Issue-

    Yes, to both. Have you tried another URL?
  25. Dave Nottage

    Weird new IOS Issue-

    Using a URL I can reach, the code works fine for me
×