I am struggling to find a way to package an Xcode framework we created as a Pod that would only be used internally (not public, not on github).
How do I modify the .podspec
to build the SDK from the local Xcode project on my development machine?
I am struggling to find a way to package an Xcode framework we created as a Pod that would only be used internally (not public, not on github).
How do I modify the .podspec
to build the SDK from the local Xcode project on my development machine?
Short answer: you don't use the .podspec
for this. Longer: the .podfile
is mainly for specifying:
IIRC, other than some informational metadata, the .podspec
does not address how you get to that project folder, as this is handled separately.
As mentioned in the comments, you can use the Podfile
to use a local project, with the :path =>
directive pointing to a local project folder. For example, you have the project in /Users/me/proj
-- and the .podspec
lives at the top-level -- your Podfile would have an entry like:
pod 'MyPodName', :path => '/Users/me/proj'
Warning: when you run pod {update, install}
, this will pull whatever is checked out locally in that project at the time.
Local CocoaPods
[Cocoapods with specyfic branch]
Textual
Podfile
//Podfile pod supports:
//default(try to find .podcpec in centralised repo), path
//-remote
pod 'PodName'
//-local
//local_path can be absolute or relative
pod 'PodName', :path => '<local_path>.podspec'
Podspec
//Podspec source supports:
//git, svn, hg, http
//-remote
s.source = { :git => "https://url_to.git", :tag => "git_tag" }
//-local
s.source = { :git => 'file:///path_to_git_folder', :tag => "git_tag" }
//or, where path_to_git_folder can be relative
s.source = { :git => '/path_to_git_folder', :tag => "git_tag" }
Do not forget to commit your changes beforehand. git_tag
can be the same as a branch name.
Several useful commands:
Update:
Podfile
:
pod update
Check
.podspec
:
pod spec lint "<some_path>.podspec" --quick
pod spec lint "<some_path>.podspec" --verbose --allow-warnings
Register session:
pod trunk register <email> '<name>' --description='<description>'
Release:
pod trunk push <file>.podspec --verbose --allow-warnings
Pod search[About]:
pod search <pod_name>
Short answer: you don't use the .podspec
for this. Longer: the .podfile
is mainly for specifying:
IIRC, other than some informational metadata, the .podspec
does not address how you get to that project folder, as this is handled separately.
As mentioned in the comments, you can use the Podfile
to use a local project, with the :path =>
directive pointing to a local project folder. For example, you have the project in /Users/me/proj
-- and the .podspec
lives at the top-level -- your Podfile would have an entry like:
pod 'MyPodName', :path => '/Users/me/proj'
Warning: when you run pod {update, install}
, this will pull whatever is checked out locally in that project at the time.
You just need a private Git repository, add as a source
to Podfile
Then deciding if the framework is going to be closed source or open source, then podspec
file will be different.
all the pod repo ...
will help you Doc
© 2022 - 2024 — McMap. All rights reserved.
:path =>
for a local pod. But is your Pod in any Git repository (even if private)? – Acanthus:path =>
to your local pod. I don't know how to bypass the source issue doing apod spec lint
though. – Acanthus