Previously, I tried to install every Catalina update via Recovery Mode because it always failed in System Preference -> Software update.
Reference: Reinstall from macOS Recovery , it said
Option-⌘-R
Upgrade to the latest macOS that is compatible with your Mac.
That works well until I tried to install/upgrade Big Sur beta.
This is a basic case for one-to-one relationship using left join multiple tables. Let’s start from describing the use case in a scenario:
Say your Sales team has a contact database stored all the customers’ contact, and each contact has its owner who is a Sales agent in your team.
So when you look up the whole contact list,
First, we have to join the contacts table with agents table using the one-to-one relationship (belongsTo()) from Sales agent ID to Sales agent. …
I can imagine most of the application back-end servers are leveraging AWS SNS to send push notifications to android and iOS devices for it integrated well with FCM and APNS.
One day, I found my development iOS app is not receiving VOIP push notification anymore! This is extremely scaring for those who are providing real time service like call, messaging, streaming,…etc. After immediately testing our production app and confirmed this is a ‘development-only’ issue, I got some relief.
But it still is a bummer that VOIP push is not working in sandbox. How would I test my work? I will have to upload a build to TestFlight and test it as a production environment. You want to make some modifications? Sure! …
Previously, we introduced How to add audio device action sheet to your iOS app, I believe there is the same need for android app. So here we go again.
Similar to iOS devices, there are 3 typical audio routes: DEFAULT, SPEAKER, BLUETOOTH.
The DEFAULT route is the handset and will become wired headset if there is a plugged one.
Let’s see how to configure out the current route on the android device.
We will need to listen to the broadcast intent: ACTION_HEADSET_PLUG.
We can directly get from AudioManager:
AudioManager.isSpeakerphoneOn()
We can also directly get from AudioManager:
AudioManager.isBluetoothScoOn()
But usually, you will want to know if there is any bluetooth devices connected, then determine your UI to show this audio option or not. We can register listener to the Bluetooth Adapter. …
When developing an app with music, video, call functions, it always comes up this requirement:
How to select a desired audio device
Like the above image, it’s from CallKit where you can select the desired audio output from this action sheet.
First, we have to understand how many audio routes and how they switch. We will be based on developing a phone call app because it can involve both audio input and output.
iPhone: the iPhone handset is default route for a call.
Speaker: the speaker is the default output audio for like music, video, ring tone.
Bluetooth: whenever a bluetooth device connected, the bluetooth device will become the default audio route. …
What a beautiful island like Catalina!
However it probably gonna to be:
What a painful experience to update Electron app for Catalina!
It was exciting after upgrading macOS from Mojave to Catalina and see the beautiful desktop wallpaper, even it took like FOREVER to complete!
The excitement didn’t last more than 1 minute, because I found several apps just become ‘cannot be opened’.
I have been fighting this issue for quite a long time, since I bought a new Mac mini early this year and restored the system with my TimeMachine backup, every time when there is a Mojave update comes out, I always got this “update failed” warning.
And my first idea is “What do you mean? Come on!”.
Then I googled and tried like everything:
Reset PRAM
Reset NVRAM
Turned off System Integrity Security in safe mode
Install from a downloaded Combo Update installer
And it ended up with No Luck!
Then I tried another direction,
Backup, Install new MacOS, Restore from the…