Key-value observing is a mechanism that allows objects to be notified of changes to specified properties of other objects. You can use key-value observing with a Swift class, as long as the class inherits from the NSObject class. You can use these two steps to implement key-value observing in Swift. Add the dynamic modifier and… Continue reading Key-Value Observing
Tag: iOS
How to upload an App with universal framework to AppStore?
Cocoapods is a popular dependencies management tool for iOS development. We notice that in Cocoapods-v1.3, the framework MUST include simulator (x86_64, i386) architectures, otherwise the pod spec lint will fail and the pod cannot be uploaded to Cocoapods server. It shows error as follows: xcodebuild: fatal error: lipo: -remove's specified would result in an empty… Continue reading How to upload an App with universal framework to AppStore?
Cocoapod tips
check installed cocoapod plugin gem list --local | grep cocoapods create pod pod spec create POD_NAME https://eladnava.com/publish-a-universal-binary-ios-framework-in-swift-using-cocoapods/ Register an account by running the following, entering your full name and e-mail address: pod trunk register you@email.com 'Full Name' create pod demo pod lib create SwiftKit pod spec lint --verbose ...... pod trunk push SwiftKit.podspec https://s3.amazonaws.com/elasticbeanstalk-us-east-1-564874457370/SwiftKit.zip check… Continue reading Cocoapod tips
Hide implementation of swift framework when distributing
In this article, I will demonstrate how to create a Swift NiceLogger framework and push to Cocoapods without sharing source code. You can download the final project from NiceLogger 1. Create a Swift framework 1.1 Create a new framework project  Product Name NiceLogger, Set language to Swift  1.2 Create a new file NiceLogger.swift… Continue reading Hide implementation of swift framework when distributing
CoreLocation in iOS
CoreLocation in iOS11  
iOS Grand Central Dispatch
GCD provides three main types of queues:  1.1 Main queue Main queue runs on the main thread and is a serial queue. This is a common choice to update the UI after completing work in a task on a concurrent queue. To do this, you’ll code one closure inside another. Targeting the main queue… Continue reading iOS Grand Central Dispatch
How to generate **.cer** and **.p12** file for iOS push notification
Every time I created a new app with push notifications, iOS, I'm sure I've got everything right and then something refused to work. So this time I'm writing it down so I can't possibly get it wrong again.  Generally, we need 2 files for push notification: * .cer file * .p12 file Generate cer… Continue reading How to generate **.cer** and **.p12** file for iOS push notification