As usual, Xcode 9 introduced new default warnings and tightened existing ones. Some of these changes don’t seem to get applied to existing projects during the upgrade check. For better or worse though, running pod install or pod update has the effect of setting warnings for all pods like it’s a new project. This led to me seeing a lot of warnings in the form of 'RandomCocoaTouchAPI' is only available on iOS 10.0 or newer in certain pods. The build setting responsible is CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE.
Since there’s no telling when these warnings are going to be fixed, if ever, I used the following post_install snippet in my Podfile to manually relax just this setting on the offending pods. It’s a better solution than suppressing all warnings. It also prints out a notice to remind me to check later if the warnings have been fixed.
If you don’t care to enumerate individual pods, you can also change the setting at the pod project level.
Google recently reorganized their Cocoapods offerings, moving components like their analytics package back into its own pod and deprecating the Google pod in the process.
Apple is very particular about how 3rd party software gets on their devices. Basically, the more users you want to distribute the app to, the more hoops you have to jump through. It breaks down like this:
About me
My name is Robin Kunde. I am a software engineering consultant currently specializing in iOS mobile development and the Swift compiler. I have worked on large e-commerce projects and mobile apps for major retailers in the past.