SWIFT – Create filled array using map

A simple trick using .map to create directly a new Int array with random numbers inside.

The function produce this output:

array[0] = 1
array[1] = 5
array[2] = 3
[...]
array[30] = 1
func generateArray() -> [Int] {
let monthDays = Calendar.current.numberOfDaysInMonthForDate(Date())

let array = (0..<monthdays).map { i -> Int in
return Int(Double(arc4random_uniform(5)))
}

return array
}

That’s all!

XCode – Debug macOS PreferencesPane applications

You need to build a System preference panel extension for your app but you’re unable to debug it from XCode due to Apple System Integrity lock?

Let’s see how!

PreferencePane macOS app extension

But how to debug this extension?

Latest macOS block the execution or the debug of all system application. Now all apps are signed and if you try to attach a debugger you’ll receive this error:

Message from debugger: cannot attach to process due to System Integrity Protection

To avoid this kind of error, I suggest a simple trick. Use it only for debugging your plugin.

  1. Go in /Applications and duplicate the “System Preferences.app”.
  2. Rename it to “SystemPreferences_nosign.app”
  3. Open terminal, go to the Application folder and use:
$ codesign -s - -f SystemPreferences_nosign.app

Well done!

Now in XCode, select as Run Process, your new “nosigned” application. Build and run (debug)!

0x8BADF00D and others crashes

From Wikipedia:

A crash (or system crash) in computing is an event in which a computer or a program (such as a software application or an operating system) ceases to function properly, often exiting after encountering errors. The program responsible may appear to freeze or hang until a crash reporting service documents details of the crash. If the program is a critical part of the operating system kernel, the entire computer may crash, often resulting in a fatal system error. […]

Continue reading 0x8BADF00D and others crashes