cocoapods-binary-bel 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ff8183174797ebc162d61d086a2775688c82e76bcbe894435595948854eab0a0
4
+ data.tar.gz: 5b5fa7f18e0a0474562456166226d518e84f63ec3ba1e2b634901e0fdf085854
5
+ SHA512:
6
+ metadata.gz: 32c7cc708291d9500d17fda16d45bda650dc1f2d90bf806978cd8acb36de365dda764af0f11338447e2edad8d53ae618a91503f60a8619d3bed35e864d2ffad3
7
+ data.tar.gz: faa283aeb42a00bfc7c755f551fab66f2cac8a5a1dd8124309408cb2bb7566f08ea2de9aaa2c93f93b83c5da5abb4a3d2959120ef67c7b135831308bdca20e98
@@ -0,0 +1,10 @@
1
+ Thanks for your feedback!
2
+
3
+ If it's a bug:
4
+
5
+ - What's your environment:
6
+ - run ` pod env | egrep 'CocoaPods |Xcode|cocoapods-binary' ` then paste the result here
7
+ - A demo project is helpful:
8
+ - It will be very helpful if provides a demo project that reproduce the problem. A blank project with cocoapods-binary can be downloaded [here](https://github.com/leavez/cocoapods-binary/files/3086250/BinaryDemo.zip), which can be remodeled to a minimal problematic environment. Attach the demo.zip to the comments.
9
+
10
+
data/.gitignore ADDED
@@ -0,0 +1,33 @@
1
+ .DS_Store
2
+ pkg
3
+ .idea/
4
+
5
+ test/Pods
6
+ test/Gemfile.lock
7
+
8
+ ## Various settings
9
+ *.pbxuser
10
+ !default.pbxuser
11
+ *.mode1v3
12
+ !default.mode1v3
13
+ *.mode2v3
14
+ !default.mode2v3
15
+ *.perspectivev3
16
+ !default.perspectivev3
17
+ xcuserdata/
18
+
19
+ ## Other
20
+ *.moved-aside
21
+ *.xccheckout
22
+ *.xcscmblueprint
23
+
24
+ ### Xcode Patch ###
25
+ *.xcodeproj/*
26
+ !*.xcodeproj/project.pbxproj
27
+ !*.xcodeproj/xcshareddata/
28
+ !*.xcworkspace/contents.xcworkspacedata
29
+ /*.gcno
30
+ test/Binary.xcworkspace/contents.xcworkspacedata
31
+ test/Binary.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
32
+ test/Podfile
33
+ test/Podfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,23 @@
1
+ osx_image: xcode9.3
2
+ language: objective-c
3
+ cache:
4
+ - cocoapods
5
+ - bundler
6
+ before_install:
7
+ - gem install cocoapods
8
+ script:
9
+ - rake install
10
+ - cd test
11
+ - sh test.sh
12
+ - cd ..
13
+
14
+ # auto deploy on tagging
15
+ # automatically set by `travis setup rubygems`
16
+ deploy:
17
+ provider: rubygems
18
+ api_key:
19
+ secure: HglQwElI8cEeKc5oXzoVbBBprgb8k7RUr0YOH1N1fhpNW7HJpJtSLzUBPC5T+Sv5RPSicaxY/oXeYE6x4E7Oadf7Gy2tmM9iwwJQh6YgZ/foh9G9obHZtTerhB4wY2cjguBXDmLqiMRiJzNTZRvoUnESBKakPbK/ODY0mHT+LDdMwZk2QsMjD3fRc5M7JRR29jr56jzVuUdy0lR4TRoc2+yIRqp2vFNtcbKdzKuYgzcdE9xzPh0FQzgiImA5uGDruyAgoNeOlGxDPZdnm7fw/epLmq8fUIZanReI30QnJeIErFwMCVeN1zVqQiWRgv8qGi8Z0ZKOzvcu7oKuaeXo5xSkTfkAc9I0LbcRd3UHCluAr9JHuERNwkn1qx5W0DdngTKrPM65ZABQxk4KUHt+5yd6Dv7lR9GrGD3teNZDga/X8u0tQIkoPIl76ZjXRh0bmCDQM/zWaTKkh7eX/YXQKgrjrEecZMeZfsLds789MK2QO17QlbHTVno+HBr0Rah6nHI0/vl1xqHthHCb/Y9SBXmLQ7+ySNXmj7YxPjpD6m8kEEUDTQQdgjS7vMInqJiSekGBImu2VQA/qZP1+WEBha5nX2ADfvsAWfUdsdQfuTbv07RnIG+3quzSl5U1UPVR9f7EsqpTtxflLJCqVdaz2ndQBO6NXAnRhA90cfAFd9s=
20
+ gem: cocoapods-binary-bel
21
+ on:
22
+ tags: true
23
+ repo: leavez/cocoapods-binary-bel
@@ -0,0 +1,17 @@
1
+ {
2
+ "configurations": [
3
+ {
4
+ "name": "Debug CocoaPods Binary",
5
+ "showDebuggerOutput": true,
6
+ "type": "Ruby",
7
+ "request": "launch",
8
+ "useBundler": true,
9
+ "cwd": "${workspaceRoot}/demo", // pod 命令执行的路径
10
+ "program": "/usr/local/bin/pod",
11
+ // "args": ["update", "--verbose","--sources=http://gitlab.9tong.com/ios-group/HQPFoundation/hqpspecs.git"], // `pod` 命令的参数
12
+ "args": ["install", "--verbose"]
13
+ // "args": ["install","--hsource"]
14
+ // "args":["install", "--help"]
15
+ }
16
+ ]
17
+ }
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in cocoapods-binary-bel.gemspec
4
+ gemspec
5
+
6
+
7
+
8
+ gem 'cocoapods'
9
+ gem 'mocha'
10
+ gem 'bacon'
11
+ gem 'mocha-on-bacon'
12
+ gem 'prettybacon'
13
+ gem 'ruby-debug-ide'
14
+ gem 'debase', '~> 0.2.5.beta2'
15
+
data/Gemfile.lock ADDED
@@ -0,0 +1,130 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ cocoapods-binary-bel (0.5.1)
5
+ CFPropertyList
6
+ cocoapods
7
+ fourflusher
8
+ xcpretty
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ CFPropertyList (3.0.5)
14
+ rexml
15
+ activesupport (6.1.4.1)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
20
+ zeitwerk (~> 2.3)
21
+ addressable (2.8.0)
22
+ public_suffix (>= 2.0.2, < 5.0)
23
+ algoliasearch (1.27.5)
24
+ httpclient (~> 2.8, >= 2.8.3)
25
+ json (>= 1.5.1)
26
+ atomos (0.1.3)
27
+ bacon (1.2.0)
28
+ claide (1.0.3)
29
+ cocoapods (1.11.2)
30
+ addressable (~> 2.8)
31
+ claide (>= 1.0.2, < 2.0)
32
+ cocoapods-core (= 1.11.2)
33
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
34
+ cocoapods-downloader (>= 1.4.0, < 2.0)
35
+ cocoapods-plugins (>= 1.0.0, < 2.0)
36
+ cocoapods-search (>= 1.0.0, < 2.0)
37
+ cocoapods-trunk (>= 1.4.0, < 2.0)
38
+ cocoapods-try (>= 1.1.0, < 2.0)
39
+ colored2 (~> 3.1)
40
+ escape (~> 0.0.4)
41
+ fourflusher (>= 2.3.0, < 3.0)
42
+ gh_inspector (~> 1.0)
43
+ molinillo (~> 0.8.0)
44
+ nap (~> 1.0)
45
+ ruby-macho (>= 1.0, < 3.0)
46
+ xcodeproj (>= 1.21.0, < 2.0)
47
+ cocoapods-core (1.11.2)
48
+ activesupport (>= 5.0, < 7)
49
+ addressable (~> 2.8)
50
+ algoliasearch (~> 1.0)
51
+ concurrent-ruby (~> 1.1)
52
+ fuzzy_match (~> 2.0.4)
53
+ nap (~> 1.0)
54
+ netrc (~> 0.11)
55
+ public_suffix (~> 4.0)
56
+ typhoeus (~> 1.0)
57
+ cocoapods-deintegrate (1.0.5)
58
+ cocoapods-downloader (1.5.1)
59
+ cocoapods-plugins (1.0.0)
60
+ nap
61
+ cocoapods-search (1.0.1)
62
+ cocoapods-trunk (1.6.0)
63
+ nap (>= 0.8, < 2.0)
64
+ netrc (~> 0.11)
65
+ cocoapods-try (1.2.0)
66
+ colored2 (3.1.2)
67
+ concurrent-ruby (1.1.9)
68
+ debase (0.2.5.beta2)
69
+ debase-ruby_core_source (>= 0.10.12)
70
+ debase-ruby_core_source (0.10.13)
71
+ escape (0.0.4)
72
+ ethon (0.15.0)
73
+ ffi (>= 1.15.0)
74
+ ffi (1.15.4)
75
+ fourflusher (2.3.1)
76
+ fuzzy_match (2.0.4)
77
+ gh_inspector (1.1.3)
78
+ httpclient (2.8.3)
79
+ i18n (1.8.11)
80
+ concurrent-ruby (~> 1.0)
81
+ json (2.6.1)
82
+ minitest (5.14.4)
83
+ mocha (1.13.0)
84
+ mocha-on-bacon (0.2.3)
85
+ mocha (>= 0.13.0)
86
+ molinillo (0.8.0)
87
+ nanaimo (0.3.0)
88
+ nap (1.1.0)
89
+ netrc (0.11.0)
90
+ prettybacon (0.0.2)
91
+ bacon (~> 1.2)
92
+ public_suffix (4.0.6)
93
+ rake (13.0.6)
94
+ rexml (3.2.5)
95
+ rouge (2.0.7)
96
+ ruby-debug-ide (0.7.3)
97
+ rake (>= 0.8.1)
98
+ ruby-macho (2.5.1)
99
+ typhoeus (1.4.0)
100
+ ethon (>= 0.9.0)
101
+ tzinfo (2.0.4)
102
+ concurrent-ruby (~> 1.0)
103
+ xcodeproj (1.21.0)
104
+ CFPropertyList (>= 2.3.3, < 4.0)
105
+ atomos (~> 0.1.3)
106
+ claide (>= 1.0.2, < 2.0)
107
+ colored2 (~> 3.1)
108
+ nanaimo (~> 0.3.0)
109
+ rexml (~> 3.2.4)
110
+ xcpretty (0.3.0)
111
+ rouge (~> 2.0.7)
112
+ zeitwerk (2.5.1)
113
+
114
+ PLATFORMS
115
+ universal-darwin-20
116
+
117
+ DEPENDENCIES
118
+ bacon
119
+ bundler
120
+ cocoapods
121
+ cocoapods-binary-bel!
122
+ debase (~> 0.2.5.beta2)
123
+ mocha
124
+ mocha-on-bacon
125
+ prettybacon
126
+ rake
127
+ ruby-debug-ide
128
+
129
+ BUNDLED WITH
130
+ 2.2.26
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 DevaLee
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2018 leavez <gaojiji@gmail.com>
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,80 @@
1
+ <p align="center"><img src="/test/logo.png" width="622"></p>
2
+
3
+ [![Build Status](https://travis-ci.org/leavez/cocoapods-binary.svg?branch=master)](https://travis-ci.org/leavez/cocoapods-binary)
4
+
5
+ A CocoaPods plugin to integrate pods in form of prebuilt frameworks, not source code, by adding **just one flag** in podfile. Speed up compiling dramatically.
6
+
7
+ Good news: Introduction on cocoapods offical site: [Pre-compiling dependencies](http://guides.cocoapods.org/plugins/pre-compiling-dependencies.html) ( NOTE: This plugin is a community work, not official.)
8
+
9
+
10
+ ## Why
11
+
12
+ You may wonder why CocoaPods doesn't have a function to integrate libs in form of binaries, if there are dozens or hundreds of pods in your podfile and compile them for a great many times meaninglessly. Too many source code of libs slow down your compile and the response of IDE (e.g. code completion), and then reduce work efficiency, leaving us time to think about the meaning of life.
13
+
14
+ This plugin implements this simple wish. Replace the source code in pod target with prebuilt frameworks.
15
+
16
+ Why don't use Carthage? While Carthage also integrates libs in form of frameworks, there several reasons to use CocoaPods with this plugin:
17
+
18
+ - Pod is a good simple form to organize files, manage dependencies. (private or local pods)
19
+ - Fast switch between source code and binary, or partial source code, partial binaries.
20
+ - Some libs don't support Carthage.
21
+
22
+ ## How it works
23
+
24
+ It will compile the source code of pods during the pod install process, and make CocoaPods use them. Which pod should be compiled is controlled by the flag in Podfile.
25
+
26
+ #### Under the hood
27
+
28
+ ( You could leave this paragraph for further reading, and try it now. )
29
+
30
+ The plugin will do a separated completed 'Pod install' in the standard pre-install hook. But we filter the pods by the flag in Podfile here. Then build frameworks with this generated project by using xcodebuild. Store the frameworks in `Pods/_Prebuild` and save the manifest.lock file for the next pod install.
31
+
32
+ Then in the flowing normal install process, we hook the integration functions to modify pod specification to using our frameworks.
33
+
34
+ ## Installation
35
+
36
+ ## 编译方法
37
+ sudo gem build cocoapods-binary-bel.gemspec && sudo gem install cocoapods-binary-bel-0.4.8.gem
38
+
39
+ ## Usage
40
+
41
+ ``` ruby
42
+ plugin 'cocoapods-binary-bel'
43
+
44
+ use_frameworks!
45
+ # all_binary!
46
+
47
+ target "HP" do
48
+ pod "ExpectoPatronum", :binary => true
49
+ end
50
+ ```
51
+
52
+ - Add `plugin 'cocoapods-binary'` in the head of Podfile
53
+ - Add `:binary => true` as a option of one specific pod, or add `all_binary!` before all targets, which makes all pods binaries.
54
+ - pod install, and that's all
55
+
56
+ **Note**: cocoapods-binary require `use_frameworks!`. If your worry about the boot time and other problems introduced by dynamic framework, static framework is a good choice. Another [plugin](https://github.com/leavez/cocoapods-static-swift-framework) made by me to make all pods static frameworks is recommended.
57
+
58
+ #### Options
59
+
60
+ If you want to disable binary for a specific pod when using `all_binary!`, place a `:binary => false` to it.
61
+
62
+ If your `Pods` folder is excluded from git, you may add `keep_source_code_for_prebuilt_frameworks!` in the head of Podfile to speed up pod install, as it won't download all the sources every time prebuilt pods have changes.
63
+
64
+ If bitcode is needed, add a `enable_bitcode_for_prebuilt_frameworks!` before all targets in Podfile
65
+
66
+
67
+ #### Known Issues
68
+
69
+ - doesn't support watchos now
70
+ - ~~dSYM files is missing for dynamic frameworks using this plugin. Workaround: Don't use this plugin for a release build. Add a if condition with ENV around `plugin 'cocoapods-binary'`. [(detail)](https://github.com/leavez/cocoapods-binary/issues/44)~~ (fix in 0.4.2)
71
+
72
+ ## License
73
+
74
+ MIT
75
+
76
+ Appreciate a 🌟 if you like it.
77
+
78
+ # cocoapods-binary-bel
79
+
80
+
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ def specs(dir)
4
+ FileList["spec/#{dir}/*_spec.rb"].shuffle.join(' ')
5
+ end
6
+
7
+ desc 'Runs all the specs'
8
+ task :specs do
9
+ sh "bundle exec bacon #{specs('**')}"
10
+ end
11
+
12
+ task :default => :specs
13
+
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cocoapods-binary-bel/gem_version.rb'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'cocoapods-binary-bel'
8
+ spec.version = CocoapodsBinaryBel::VERSION
9
+ spec.authors = ['leavez']
10
+ spec.email = ['gaojiji@gmail.com']
11
+ spec.description = %q{integrate pods in form of prebuilt frameworks conveniently, reducing compile time}
12
+ spec.summary = %q{A CocoaPods plugin to integrate pods in form of prebuilt frameworks, not source code, by adding just one flag in podfile. Speed up compiling dramatically.}
13
+ # spec.homepage = 'https://github.com/leavez/cocoapods-binary'
14
+ spec.homepage = 'https://www.baidu.com'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files`.split($/).reject{|f| f.start_with?("test/") || f.start_with?('demo/') || f.start_with?('ddqp-swift/')}
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_runtime_dependency "cocoapods"
23
+ spec.add_runtime_dependency "fourflusher"
24
+ spec.add_runtime_dependency "xcpretty"
25
+ spec.add_runtime_dependency "CFPropertyList"
26
+
27
+ spec.add_development_dependency 'bundler'
28
+ spec.add_development_dependency 'rake'
29
+ end