SKStoreKitReviewController and Darkmode - ios

Is there any way to alter the colors/tint of an SKStoreKitReviewController? When I am modifying my apps to support DarkMode, when in dark mode, the presented viewController does not look good.

This issue was resolved in iOS 13.2. The blur effect is dark, just like other system alerts when Dark Mode is enabled.

Related

iOS, Swift Application is always running in Dark Mode

So I just want my app to always run in dark mode. Even if the device appearance in in Light I still want the app to run in dark mode. Is this possible?
Yes, It's possible, You must Add "Appearance" key to "Dark" in Info.plist such as:
You can set UIUserInterfaceStyle to Dark in your Info.plist as explained in Is it possible to opt-out of dark mode on iOS 13?

How to set dark mode for NSToolbar in macOS Catalyst app?

In my iOS/macOS app the user can choose between a light and a dark appearance.
This is done by setting the overrideUserInterfaceStyle of the app window, for example
window.overrideUserInterfaceStyle = .dark
It works fine on iOS/iPadOS.
On macOS (Catalyst) the app uses an NSToolbar, which always appears in the mode chosen in the system settings, regardless what ist set for the overrideUserInterfaceStyle of the window (see screenshot).
Since this is not a good visual impression, I would like to know how I can set light/dark mode for the NSToolbar too.
Add UIUserInterfaceStyle with a value Dark to your app’s Info.plist. That will force the whole app to dark mode on iOS 13+ and Mac Catalyst (you won’t need to set overrideUserInterfaceStyle).
Docs: https://developer.apple.com/documentation/bundleresources/information_property_list/uiuserinterfacestyle
This can be done by adding an macOS plugin which has access to the whole AppKit API. Instructions can be found here:
How to Access the AppKit API from Mac Catalyst Apps
Then you can set the desired appearance there at runtime, for example:
NSApplication.shared.appearance = NSAppearance(named: .darkAqua)

In FirebaseUI for iOS, forcing dark mode causes the Apple Icon to blend in with the background

I am using FirebaseUI for iOS. The "Sign In With Apple" icon is blending in with the background.
I am forcing dark mode like so:
HomeView()
.preferredColorScheme(.dark)
When the OS is set to light mode, the buttons look like this:
My app is not getting approved because:
It is not clear that the Sign in with Apple button is a button. It should be clear to the user what is and isn't a button in your user interface.
Anyone know how to make the Apple icon white when forcing dark mode on an iPhone set to light mode?

sections of the iOS app become black in some devices

I have an app which is currently published, this one person reported a problem with an iPhone 7 iOS 13.5.1 where he could not use it, basically the background of a table view cell is completely black where on all other devices is white, because of that and since the text is black, this person can't read anything. Also in the search field he can't see what is being typed, there, the background is white and the text which is supposed to be black is white. We actually got a screenshot which is by the way not very clear but you can see a faded version of the text in both the search field and the table view.
We also have the same model and with the same OS version installed but are not seeing the issue, for now we have only gotten report from this one person.
Has anyone experienced a similar issue that can point me to what the problem maybe?
You need to set your background color to white instead default.
"default" will set your background color in black if the device is in dark mode.
This looks to be an issue where your user has dark mode enabled, but your app appears to use a mixture of hardcoded and semantic colors.
As a quick workaround your can force your app to always use light mode by adding
<key>UIUserInterfaceStyle</key>
<string>Light</string>
to your Info.plist

iOS 13 dark mode objc strings

I want to disable dark mode within my app for iOS 13. And I prefer not to do so via info.plist. The reason is, plist uses a global setting, making UIUserInterfaceStyle affects earlier iOS versions aswell (creating conflicts). I only want to set it to light for iOS 13! This is my current code within my AppDelegate:
if(#available(iOS 13, *)){
window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
This code snippet works for fixing statusBar color to light. But general strings within the app are still in "dark mode". Earlier white strings turn into black, and my app is already pretty dark as it is. How do I fix so strings in the app does not change it's colors by themselves in dark mode? I want a global code snippet and not go through every ViewController...
Regards
iOS ignores Info.plist keys it doesn't know. So you can safely set UIUserInterfaceStyle to Light in your Info.plist, iOS prior to version 13 will ignore this key.
Fixed the problem by calling:
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

Resources