Reputation: 109
What I'm looking to do is create a cocoa pod that does not show my implementation of my source code. I was told you could use "s.ios.vendored_frameworks" and embed your framework like how iOS does for it's frameworks. What I want to do is embed my framework, but not make my source files visible and able to edit. What am I doing wrong?
I have a framework that I create via Xcode located here: https://bitbucket.org/nerdgang/ngkitsdk/src
This is my podspec:
Pod::Spec.new do |s|
s.name = "NGKitSDK"
s.version = "0.0.1"
s.summary = "NGKit a SDK for my projects, my version of iOS."
s.homepage = "https://bitbucket.org/nerdgang/ngkitsdk"
# ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Licensing your code is important. See http://choosealicense.com for more info.
# CocoaPods will detect a license file if there is a named LICENSE*
# Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'.
#
s.license = "MIT"
# s.license = { :type => "MIT", :file => "FILE_LICENSE" }
# ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Specify the authors of the library, with email addresses. Email addresses
# of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also
# accepts just a name if you'd rather not provide an email address.
#
# Specify a social_media_url where others can refer to, for example a twitter
# profile URL.
#
s.author = { "Havic" => "[email protected]" }
# Or just: s.author = "Havic"
# s.authors = { "Havic" => "[email protected]" }
# s.social_media_url = "http://twitter.com/Havic"
# ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# If this Pod runs only on iOS or OS X, then specify the platform and
# the deployment target. You can optionally include the target after the platform.
#
# s.platform = :ios
s.platform = :ios, "5.0"
# When using multiple platforms
# s.ios.deployment_target = "5.0"
# s.osx.deployment_target = "10.7"
# s.watchos.deployment_target = "2.0"
# s.tvos.deployment_target = "9.0"
# ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Specify the location from where the source should be retrieved.
# Supports git, hg, bzr, svn and HTTP.
#
s.source = { :git => "https://bitbucket.org/nerdgang/ngkitsdk/src" }
s.ios.vendored_frameworks = 'NGKitSDK.framework'
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# CocoaPods is smart about how it includes source code. For source files
# giving a folder will include any swift, h, m, mm, c & cpp files.
# For header files it will include any header in the folder.
# Not including the public_header_files will make all headers public.
#
s.source_files = "NGKitSDK", "Classes/**/*.{h,m}"
s.exclude_files = "Classes/Exclude"
# s.public_header_files = "Classes/**/*.h"
Upvotes: 4
Views: 8239
Reputation: 671
In description you pointing that you want to hide your source code but URL in s.source points to repo with exactly source code To hide the sources you need to zip *.framework file upload it somewhere and use this URL for s.source
Upvotes: 0
Reputation: 36610
I had a similar problem in the past, that was resolved by setting the s.public_header_files value to point to the header files used in your framework.
Upvotes: 4