iOS Swift Array of Plist

Swift 5 code:

func getArrayOfPlist() -> Array {
        let path = Bundle.main.path(forResource: "content", ofType: "plist")
        var contentsArray = [String]()
        if let path = path {
            if let contentsXML = FileManager.default.contents(atPath: path) {
                do {
                    let plistData = try PropertyListSerialization.propertyList(from: contentsXML, options: [], format: nil)
                    contentsArray = plistData as! Array
                } catch {
                    NSLog("Error when decoding contents from \(path)")
        return contentsArray

Example content.plist

Figure out iOS Device Orientation Manually with Swift

I had the problem that I coded an app that records video in landscape. Although only landscape orientation is allowed in the app, users would frequently hold the device in portrait mode and produce shitty videos. Therefore, I decided to show a note to the user demanding to hold the device horizontally when holding it upright. To achieve this, it was not possible using an out of the box means by iOS, as those automatic features require the app to work in landscape as well as in portrait mode (which, as stated above, my app didn’t).
Continue reading “Figure out iOS Device Orientation Manually with Swift”

Use Crashlytics with Carthage

Usually, developers integrate Crashlytics into their apps in order to track crashes of their apps. Regarding the integration, Crashlytics (or the company Fabric which stands behind Crashlytics) recommends using the dependency manager Cocoa Pods. The approach how to integrate Crashlytics into Cocoa Pods is described here in great detail. Due to a row of shortcomings in Cocoa Pods, a fair amount of developers prefers using the dependency manager Carthage. However, so far the explicit steps on how to integrate Crashlytics into Carthage remain vague. In the following I want to explain the explicit steps that worked for me.
Continue reading “Use Crashlytics with Carthage”

How to remove Big Files and Folders from Git or How To Fix Github’s Maximum File Size Problem

I have recently had the problem that I wanted to move my Git repositories from a self-hosted repository to Github. One of those repositories contained a fair amount of external libraries (to be precise lots of Cocoa pods). When I tried to push the repository to Github, I would get to see warnings like this:

~/D/north-kites-ios (develop↑1|✔) $ git push github develop

remote: warning: File Pods/GoogleMaps/Subspecs/Maps/Frameworks/GoogleMapsCore.framework/Versions/A/GoogleMapsCore is 74.85 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB

error: failed to push some refs to ''

Continue reading “How to remove Big Files and Folders from Git or How To Fix Github’s Maximum File Size Problem”

How to Make Sure That You Are Using an Enterprise Account for IPA Provisioning

In my post describing how to »Provision iOS IPA App for In-House Enterprise Distribution« I described the pitfalls when trying (and hopefully succeeding) to make an In-House Provisioning of your iOS app.

Although I mention repeatedly that you need to be sure that you use an Apple Enterprise Provisioning Account, I experienced multiple times that developers tried to perform the In-House Provisioning with a non Enterprise account. Continue reading “How to Make Sure That You Are Using an Enterprise Account for IPA Provisioning”

Swift Extension for Location Authorization Requests in iOS

A while back I wrote an Objective-C category that helps you managing location authorization requests. As I needed the same functionality in a Swift-based project, I did the effort to transfer the code into Swift. You can download the Swift location authorization extension here.

Cocoapods Swift does not work with use_frameworks! Fix

I have a mixed Objective-C/Swift project and activated use_frameworks! in my podfile because I wanted to use a Swift-based pod. In order to enable the usage of the Objective-C-based pods in your Swift code, I thought it would be necessary to stick to the common approach of including the pods’ header files into a bridging header file and configure the project in Xcode accordingly. Like so.
Continue reading “Cocoapods Swift does not work with use_frameworks! Fix”

A Simple Approach to App Localization using Xcode, XLIFF and Objective-C

When it comes to localizing applications for iOS or Mac OS, things get pretty quickly messed up and cumbersome. The tool support by Apple is – friendly spoking – lacking consistency. Especially if you are updating your code and want to update the localization, things get hairy. I do not want to go into detail here because otherwise this post would never end. I would rather like to provide a (simple) solution.
Continue reading “A Simple Approach to App Localization using Xcode, XLIFF and Objective-C”