What I learned from 12/02 bug
Tags: ios, swift, todayilearned
Published: 2017-12-05 10:41:43

---
title: What I learned from 12/02 bug
published: true
description: 
tags: #iOS, #Swift, #til
---

Does anybody know this bug? [Date Bug in iOS 11.1.2 Causing Crash Loop on iPhones as December 2 Hits [Updated]](https://www.macrumors.com/2017/12/02/ios-11-1-2-date-bug-crash-loop/).

Because of timezone at Japan this bug heavily affected to many people. Our company affected, too. Perhaps our app could be the most affected app in the world.
Because there are about 7 million downloads and it uses notifications by the default.

The 🙌guy who made demo project of this bug is co-worker.

## What I Did

At 6:30 am(UTC+9) I noticed that our app crashes a lot and become trend of twitter, but at crashlytics there aren't any new crashes caught. Off course firebase crash does not know any new crashes either.

So I started search on twitter and I found that there are a bug that somehow made by our app. It was unbelievable, how I could make iOS crash by a app which works with any problem until yesterday.

At first everybody saids that notification is problem, but there are push notification and local notification. Our app uses both notification methods so I try to find which notification causes this bug.

1. Check device token error logs.
2. stop taking device token

Still being this bug. Any clues founded.

There are few accounts I use for development. And there is a account does not cause this bug. I started to take diff of that account and other account.

In our app user can chose a day for repeat notification. That account was set to 25th. Other account was 1st.
So I changed it to 25th to 1st. I hit bug. This parameter makes bug and this parameter is used only in local notification. So the problem is in local notification or our code to use local notification.

Edit code, compile, run and test. Edit code, compile, run and test. Edit code, compile, run and test. I tried so many times.

If you are swift developer, probably knows that compile takes plenty of time and while compiling Xcode become stupid. It takes time and staminas. 
The 🙌Guy made a small demo project that hit this bug. This project is very small and very fast compile. So we could debug very faster.

Here is one what I learned from this bug.

## 1. Make demo project

If 🙌Guy didn't make demo project we couldn't determine this bug at [this quality ](https://blog.zaim.net/?p=3337)(Japanese only).
In this post we tried to describe what happened to iOS. There are more detail and guesses which did not write in this post.
ex) this bug is not only for 2017. not only 12/2. 
These results are found because of fast compile and debug.


## 2. Tell to the apple in English

Who made iOS? Apple.
Apple uses English for default language.
If we find a bug. We need to tell apple in English.
probably radder has many rubbish bug reports. So we need to take attention from apple. But how?

## 3. Tell the world (twitter) in English

So did we act well? No. We didn't tell the world in English. Only Japanese.

I believe there will not have these kind of huge bug. But if I hit the bug. I will make small demo project and announce it in English.


If you want know about this more deeply you could read [this blog ](https://blog.zaim.net/?p=3337)(Japanese).


Only Apple Could know truth. we could do only guess.