Jump to content

Martifan

Members
  • Content Count

    64
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Martifan


  1. 2 hours ago, Dave Nottage said:

    Ah yes, sorry.. the roundness can be changed. I'll take a look at adding that. These are the style values:

     

      ASAuthorizationAppleIDButtonStyleBlack

      A black button.

     

      ASAuthorizationAppleIDButtonStyleWhiteOutline

      A button with a white outline.

     

      ASAuthorizationAppleIDButtonStyleWhite

     

    Which are displayed in the link I gave:

     

      https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/buttons/#creating-a-custom-sign-in-with-apple-button

     

    I'll also take a look at adding support for those.

    i did so but still the button is black

    function TiOSAppleIDButton.GetView: ASAuthorizationAppleIDButton;
    begin
      Result := TASAuthorizationAppleIDButton.Wrap(TASAuthorizationAppleIDButton.OCClass.buttonWithType(ASAuthorizationAppleIDButtonTypeSignIn,
        ASAuthorizationAppleIDButtonStyleWhite));
    end;


  2. 9 minutes ago, Dave Nottage said:

    The implementation I have done uses the native control, i.e. ASAuthorizationAppleIDButton, which is fairly limited in the styles available. Please refer to:

     

      https://developer.apple.com/documentation/authenticationservices/asauthorizationappleidbutton?language=objc

      https://developer.apple.com/documentation/authenticationservices/asauthorizationappleidbuttonstyle?language=objc

     

    If you have a sign-in button which does not have a style that is mandated by Apple, your app is likely to be rejected. See:

     

      https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/buttons/#creating-a-custom-sign-in-with-apple-button

     

    Examples of rejections:

     

      https://community.auth0.com/t/apple-store-rejected-app-because-of-sign-in-with-apple-styles/43854

      https://github.com/firebase/FirebaseUI-iOS/issues/823

     

    For these reasons, I'm not going to be implementing styles other than what they provide.

     

     

    Ok, thanks, I just wanted a more round button to do.

    How do I change the color of buttons and text on a button? what style is on the phone?

    black and white?

     

    77387591-cab57d80-6dc8-11ea-8e7a-5cbf6accdbf6.png


  3. 1 hour ago, Dave Nottage said:

    I've already answered your email, but for the benefit of others:

     

    On iOS, you can check what the user has authorized with:
    
      TCLLocationManager.OCClass.authorizationStatus

    which will return one of the following values:

    
      kCLAuthorizationStatusAuthorized = 3;  // User has authorized location services ("always" on iOS 8+)
      kCLAuthorizationStatusDenied = 2; // User denied authorization for your app, or they turned off location services in the device settings, or the device is in airplane mode
      kCLAuthorizationStatusNotDetermined = 0; // App is yet to request permission for location services
      kCLAuthorizationStatusRestricted = 1; // User is unable to authorize location services due to restrictions such as parental controls
      kCLAuthorizationStatusAuthorizedAlways  = kCLAuthorizationStatusAuthorized ; // See kCLAuthorizationStatusAuthorized
      kCLAuthorizationStatusAuthorizedWhenInUse = 4; // User has authorized location services only when the app is in use 
     
    (from iOSapi.CoreLocation unit)
     
    If your app needs location services and the status is kCLAuthorizationStatusDenied, you could present a message asking if they would like to change the settings, and if they do, execute OpenSettings:
    
    uses
      Macapi.Helpers, iOSapi.Foundation, iOSapi.UIKit, iOSapi.Helpers;
    
    function UIApplicationOpenSettingsURLString: NSString;
    begin
      Result := CocoaNSStringConst(libUIKit, 'UIApplicationOpenSettingsURLString');
    end;
    
    procedure OpenSettings;
    begin
      TiOSHelper.SharedApplication.openURL(TNSURL.Wrap(TNSURL.OCClass.URLWithString(UIApplicationOpenSettingsURLString)));
    end;

    This will take them to the Settings app, and show the settings specific to your app (there may be a little delay in it changing to the settings for the app)

    Thank you very much, as always everything works 🙂

    • Like 1

  4. If someone can, please help. 

    How can I control on iOS permission if users haven’t turned on their location ? And if it is not enabled, display a message.

    Thank you

    P.S. If possible an example on Delphi


  5. 1 hour ago, Dave Nottage said:

    You could send it if you like, however I think it may be resolved only by seeing the code being executed at startup. You can direct message me the source if you like. I will treat it in confidence.

     

    Okay, I can send you a mine file and a manifest file, just tell me where?


  6. 32 minutes ago, Dave Nottage said:

    Seems to be stuck in an eternal loop. Does it work as an .apk? What exactly are you doing with Firebase in the app?

    apk doesn’t have any problem. We have a same problem with stuck in an eternal loop. 

    The firebase works just for Push Notifications. 

    We think the problem is aab.

    I can send you the apk, if you want or interesting


  7. Hello, when I build a project for a 64 bit android, it gives an error:

    [DCC Error] E2597 c:\program files (x86)\embarcadero\studio\20.0\lib\Android\Release\SysInit.o: error adding symbols: File in wrong format
    [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

    how to fix it? any ideas

    P.S. If I build an empty project, then there is no error


  8. 54 minutes ago, Dave Nottage said:

    You may need to add:

    
      android:requestLegacyExternalStorage="true"

    To the <application> tag in AndroidManifest.template.xml

    [PAClient Error] Error: E6408 Unable to execute '"c:\program files (x86)\embarcadero\studio\20.0\bin\android\aapt2.exe" link --proto-format --auto-add-overlay -I "C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platforms\android-28\android.jar" --manifest "D:\Delphi\Isxodniki\Android\Gocha\NewVersion\For Free\Android64\Release\ForFree\AndroidManifest.xml" -R "D:\Delphi\Isxodniki\Android\Gocha\NewVersion\For Free\Android64\Release\ForFree\compiled_res.flata" -o "D:\Delphi\Isxodniki\Android\Gocha\NewVersion\For Free\Android64\Release\ForFree\linked_res.ap_"' (Error 1)

    [PAClient Error] Error: E6408 D:\Delphi\Isxodniki\Android\Gocha\NewVersion\For Free\Android64\Release\ForFree\AndroidManifest.xml:34: error: attribute android:requestLegacyExternalStorage not found.

     

    Quote

    <?xml version="1.0" encoding="utf-8"?>
    <!-- BEGIN_INCLUDE(manifest) -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.welcomeapps.forfree"
            android:versionCode="8"
            android:versionName="1.1.64"
            android:installLocation="auto">

        <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="29" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
        <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.READ_CALENDAR" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.WRITE_CALENDAR" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <permission android:name="com.welcomeapps.forfree.permission.C2D_MESSAGE" android:protectionLevel="signature" />
        <uses-permission android:name="com.welcomeapps.forfree.permission.C2D_MESSAGE" />
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
        <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

        <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
        <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
        <application android:persistent="False" 
            android:restoreAnyVersion="False" 
            android:label="For Free" 
            android:debuggable="False" 
            android:largeHeap="False"
            android:icon="@drawable/ic_launcher"
            android:theme="@style/MyTheme.NoTitleBar.CustomBackground"
            android:hardwareAccelerated="true"
            android:usesCleartextTraffic="true"
            android:requestLegacyExternalStorage="true"
            android:resizeableActivity="false">

     


  9. Hello. I upload my application .aab file to google playstore via the console. when downloading via google store on some android 9 smartphones and on all devices with android 10 after installation, the application gets stuck on the splash screen and does not go further where permissions should be asked.

    writes to the log:

    Quote

    backtrace:
      #00  pc 000000000006f06c  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
      #01  pc 00000000000500fc  /system/lib64/libc++.so (abort_message+232)
      #02  pc 0000000000050218  /system/lib64/libc++.so (demangling_terminate_handler()+44)
      #03  pc 00000000000646c4  /system/lib64/libc++.so (std::__terminate(void (*)())+12)
      #04  pc 000000000006466c  /system/lib64/libc++.so (std::terminate()+52)
      #05  pc 00000000000bb150  /system/lib64/libc++.so (std::__1::thread::~thread()+20)
      #06  pc 00000000000d0f68  /apex/com.android.runtime/lib64/bionic/libc.so (__cxa_finalize+212)
      #07  pc 00000000000cc950  /apex/com.android.runtime/lib64/bionic/libc.so (exit+24)
      #08  pc 0000000001b54f78  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000)
      #09  pc 0000000001b4dd7c  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000)
      #10  pc 0000000001b4daa8  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000)
      #11  pc 0000000001b54a74  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000)
      #12  pc 0000000002d566b8  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000) (_NativeMain+188)
      #13  pc 0000000001df9ff8  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000)
      #14  pc 0000000001dfa0a0  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000)
      #15  pc 0000000001dfa12c  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/split_config.arm64_v8a.apk (offset 0x1000) (ANativeActivity_onCreate+24)
      #16  pc 00000000000f5214  /system/lib64/libandroid_runtime.so (android::loadNativeCode_native(_JNIEnv*, _jobject*, _jstring*, _jstring*, _jobject*, _jstring*, _jstring*, _jstring*, int, _jobject*, _jbyteArray*, _jobject*, _jstring*)+1936)
      #17  pc 00000000002ee800  /system/framework/arm64/boot-framework.oat (art_jni_trampoline+416)
      #18  pc 0000000000144334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
      #19  pc 00000000001531a4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252)
      #20  pc 00000000002eed0c  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
      #21  pc 00000000002eb070  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+656)
      #22  pc 00000000005c048c  /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirectRange+256)
      #23  pc 000000000013ec14  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct_range+20)
      #24  pc 0000000000219fe8  /system/framework/framework.jar (android.app.NativeActivity.onCreate+412)
      #25  pc 00000000005bc090  /apex/com.android.runtime/lib64/libart.so (MterpInvokeSuper+2312)
      #26  pc 000000000013e894  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_super+20)
      #27  pc 00000000002c4af2  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/oat/arm64/base.vdex (com.embarcadero.firemonkey.FMXNativeActivity.onCreate+22)
      #28  pc 00000000005bc090  /apex/com.android.runtime/lib64/libart.so (MterpInvokeSuper+2312)
      #29  pc 000000000013e894  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_super+20)
      #30  pc 00000000003db3f8  /data/app/com.welcomeapps.forfree-DWNb5Sybj3KSyRM6bOmtRw==/oat/arm64/base.vdex (com.delphiworlds.kastri.DWNativeActivity.onCreate)
      #31  pc 00000000002bf948  /apex/com.android.runtime/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.4040658722762997890)+240)
      #32  pc 00000000005a62c8  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012)
      #33  pc 000000000014d468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
      #34  pc 0000000000807830  /system/framework/arm64/boot-framework.oat (android.app.Activity.performCreate+432)
      #35  pc 000000000042e7e0  /system/framework/arm64/boot-framework.oat (android.app.Instrumentation.callActivityOnCreate+80)
      #36  pc 00000000005885f8  /system/framework/arm64/boot-framework.oat (android.app.ActivityThread.performLaunchActivity+2504)
      #37  pc 000000000058ffc8  /system/framework/arm64/boot-framework.oat (android.app.ActivityThread.handleLaunchActivity+1256)
      #38  pc 0000000000818008  /system/framework/arm64/boot-framework.oat (android.app.servertransaction.LaunchActivityItem.execute+392)
      #39  pc 0000000000462f90  /system/framework/arm64/boot-framework.oat (android.app.servertransaction.TransactionExecutor.executeCallbacks+560)
      #40  pc 0000000000462cb4  /system/framework/arm64/boot-framework.oat (android.app.servertransaction.TransactionExecutor.execute+820)
      #41  pc 0000000000571428  /system/framework/arm64/boot-framework.oat (android.app.ActivityThread$H.handleMessage+760)
      #42  pc 00000000008a7764  /system/framework/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+180)
      #43  pc 00000000008aad50  /system/framework/arm64/boot-framework.oat (android.os.Looper.loop+1456)
      #44  pc 0000000000586db4  /system/framework/arm64/boot-framework.oat (android.app.ActivityThread.main+1668)
      #45  pc 00000000001445b8  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568)
      #46  pc 00000000001531c4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284)
      #47  pc 00000000004c6d18  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
      #48  pc 00000000004c8740  /apex/com.android.runtime/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1476)
      #49  pc 00000000004557fc  /apex/com.android.runtime/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52)
      #50  pc 00000000000f7c34  /system/framework/arm64/boot.oat (art_jni_trampoline+180)
      #51  pc 0000000000b15478  /system/framework/arm64/boot-framework.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+136)
      #52  pc 0000000000b1d544  /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2596)
      #53  pc 00000000001445b8  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568)
      #54  pc 00000000001531c4  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284)
      #55  pc 00000000004c6d18  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
      #56  pc 00000000004c6984  /apex/com.android.runtime/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+408)
      #57  pc 00000000003c60fc  /apex/com.android.runtime/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+636)
      #58  pc 00000000000e25c4  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116)
      #59  pc 00000000000e5aa4  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+828)
      #60  pc 00000000000034e0  /system/bin/app_process64 (main+1168)
      #61  pc 000000000006a050  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108

     

×