Deploy a iOS fat framework to github release
After creating a fat framework (following this Guide), you can follow these step to deploy a release.
Step 1: Create a github repo for framework source code
Step 2: On repo at step 1, create a SECRET_TOKEN
-
Create a token at GitHub tokens
-
Go to Repository → Setting → Secrets → New secret
- Name: SECRET_TOKEN (Must be exact)
- Value: The below token string
Step 3: Copy resource from this repo to your source code repo
- Copy folder
github
andrelease
to your source code repo - In file
.github/workflows/main.yml
:- Rename
SCHEME_NAME
in line 41. Example:Minerva-Universal
- Replace
FRAMEWORK_NAME
andCHANGE_LOG
in line 45. Example:Minerva
. This is the name of output file.
- Rename
Step 4: Release
When you want to release a version, push a tag with format release/v#{version}
to remote repo, example: release/v0.1.1
.
Create pod from framework
Step 1: Create podspec
In the repository folder, create a file named FRAMEWORK_NAME.podspec
. Example: Minerva.podspec
, FRAMEWORK_NAME
will be the name of the pod which you will create.
Content:
Pod::Spec.new do |s|
s.name = "Example"
s.version = "0.1.0"
s.summary = "Example SDK"
s.description = <<-DESC
Minerva project
DESC
s.homepage = "https://github.com/teko-vn/Specs-ios.git"
s.license = { :type => 'Copyright', :text => <<-LICENSE
Copyright 2020
Permission is granted to...
LICENSE
}
s.author = { "$(git config user.name)" => "$(git config user.email)" }
s.source = { :http => "https://github.com/teko-vn/Specs-ios/releases/download/#{s.name}-v#{s.version}/#{s.name}.zip" }
s.public_header_files = "Example.framework/Headers/*.h"
s.source_files = "Example.framework/Headers/*.{h, m, swift}"
s.vendored_frameworks = "Example.framework"
s.platform = :ios, "10.0"
s.dependency "Alamofire"
end
Step 2: Add Specs-ios
to local pod repo list
Run this command on terminal:
pod repo add teko-specs https://github.com/teko-vn/Specs-ios.git
Step 3: Push new .podspec
to teko-specs
Push new framework podspec
to teko-specs
by using this command
pod repo push teko-specs Example.podspec --alow-warnings
Now you can use `Example` as a pod in your project. However, you need to add `teko-specs` as a source in the Podfile of target project.
source 'https://github.com/teko-vn/Specs-ios.git'
And then, add the pod:
pod 'Example', '~> 0.1.0'