Martifan
-
Content Count
64 -
Joined
-
Last visited
-
Days Won
1
Posts posted by Martifan
-
-
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:
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:
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?
-
4 minutes ago, Dave Nottage said:Sorry.. been busy with Memorizor. They're still coming. Were you after an installable component for Apple Signin, or something else?
I want to change the style of the button or use another button with more effects
-
I want to change the style of the button or use another button with more effects
-
On 8/23/2020 at 8:03 AM, Dave Nottage said:but you can make it so that the button is not dynamically created
Hello, haven't you include other items yet?
-
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 🙂
- 1
-
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
-
if I build another project, it works fine
-
-
UP
-
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?
-
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
-
-
-
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
-
Sorry, everything works 🙂 I confused something
-
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"> -
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:
Quotebacktrace:
#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 -
FMX: For Free: Error = Cannot open file "/storage/emulated/0/Documents/FSelfLocation.ini". Permission denied
FMX: For Free: Cannot open file "/storage/emulated/0/Documents/lglist.bin". Permission denied
-
Hello
When I give on API 29 to the Storage, Push notifications and Location. Application writes that I did not receive consent
-
Hey.
I tried to repeat the same and it worked, but there is one problem. Permissions don't work. when i want to open a file, file open denied message appears.
How to fix it? although I have all the permissions and the phone shows the permission has been granted.
thank -
2 minutes ago, pyscripter said:thanks for the answer
sorry did not indicate I need example to Delphi
-
Hello
Please tell me how to check the silent mode on the iPhone or not?any ideas
thank you in advance -
Very good when to expect it?
-
but you can make it so that the button is not dynamically created, but so that for the previously present form, let Button1
Authorization using Apple ID
in Cross-platform
Posted
i did so but still the button is black
function TiOSAppleIDButton.GetView: ASAuthorizationAppleIDButton;
begin
Result := TASAuthorizationAppleIDButton.Wrap(TASAuthorizationAppleIDButton.OCClass.buttonWithType(ASAuthorizationAppleIDButtonTypeSignIn,
ASAuthorizationAppleIDButtonStyleWhite));
end;