The full UA SDK contains some code and other resources like XIBs that we don't use for basic push notifications. It would help improve build times by a modest amount to be able to omit these files. To achieve this, CocoaPods has "subspecs" which let you pull in smaller pieces of a project. For example, the AWS pod is broken up into subspecs for EC2, S3, STS, etc. The idea for UA is that CocoaPods users could write pod 'UrbanAirship-iOS-SDK/push', '~> 5.0'
.
I edited a copy of the main UrbanAirship-iOS-SDK.podspec.json to pull in fewer resources and it worked well due the nice organization of the UA codebase. It was as simple as changing the source_files
and resources
fields:
"source_files": "Airship/{Common,External,Inbox,Push}/**/*.{h,m,c}",
"resources": "Airship/{Common,External,Inbox,Push}/**/*.{xib,jpg,png,bundle,strings}",
While I can maintain this on my own, I'd prefer to have it be part of the mainline podspec so it's synced with the official release and the structure of the codebase. Happy to send a PR if you're open to it.