cocoapods 0.23.0 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/LICENSE +2 -0
- data/lib/cocoapods.rb +1 -2
- data/lib/cocoapods/command.rb +1 -0
- data/lib/cocoapods/command/init.rb +90 -0
- data/lib/cocoapods/command/setup.rb +1 -1
- data/lib/cocoapods/command/spec.rb +1 -1
- data/lib/cocoapods/config.rb +26 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/copy_resources_script.rb +2 -2
- data/lib/cocoapods/installer.rb +30 -7
- data/lib/cocoapods/installer/analyzer.rb +12 -2
- data/lib/cocoapods/installer/file_references_installer.rb +6 -10
- data/lib/cocoapods/installer/target_installer.rb +2 -9
- data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +2 -2
- data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +28 -7
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +3 -11
- data/lib/cocoapods/project.rb +117 -145
- data/lib/cocoapods/sandbox.rb +5 -5
- data/lib/cocoapods/user_interface.rb +24 -6
- metadata +50 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 715b8dbbcd30e102cab744b29a1c7d2de026fdf5
|
4
|
+
data.tar.gz: f047dae069b1bc0cf5e8112f829e1e50b9f0e957
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b07a220e098bd9f7a9f8a73b672dacdbef5ea867602ba5fb234c02e7ae1b9b03eb25358c0fed78c8c2691fe49b4b155c788fcb62237758e7773d81f1584b65e8
|
7
|
+
data.tar.gz: eb7e3c4cb5a1bd97f0f39016ed5241f14743dec70fa5a6bcbeb8748a63094e3ef02a22d7eb1a94750a9f4ced3ee279ef3a0bc9854b8512fb53e6bae038904d56
|
data/CHANGELOG.md
CHANGED
@@ -4,8 +4,79 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
|
|
4
4
|
|
5
5
|
## Master
|
6
6
|
|
7
|
+
|
8
|
+
## 0.24.0
|
9
|
+
|
10
|
+
###### Enhancements
|
11
|
+
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.22.3...0.23.0.rc1)
|
12
|
+
• [cocoapods-core](https://github.com/CocoaPods/Core/compare/0.22.3...0.23.0.rc1)
|
13
|
+
• [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.8.1...0.9.0)
|
14
|
+
• [cocoapods-downloader](https://github.com/CocoaPods/cocoapods-downloader/compare/0.1.1...0.1.2)
|
15
|
+
|
16
|
+
|
17
|
+
###### Enhancements
|
18
|
+
|
19
|
+
* Added `pod init` command which generates a Podfile according to the
|
20
|
+
targets of the project stored in the working directory and to the templates
|
21
|
+
stored in the `~/.cocoapods/templates` folder. Tow templates are supported:
|
22
|
+
- the `Podfile.default` template for regular targets.
|
23
|
+
- and the `Podfile.test` template for test targets.
|
24
|
+
|
25
|
+
[Ian Ynda-Hummel](https://github.com/ianyh)
|
26
|
+
[#1106](https://github.com/CocoaPods/CocoaPods/issues/1106)
|
27
|
+
[#1045](https://github.com/CocoaPods/CocoaPods/issues/1045)
|
28
|
+
|
29
|
+
* CocoaPods will now leverage the [xcproj](https://github.com/0xced/xcproj)
|
30
|
+
command line tool if available in the path of the user to touch saved
|
31
|
+
projects. This will result in projects being serialized in the exact format
|
32
|
+
used by Xcode eliminating merge conflicts and other related issues. To learn
|
33
|
+
more about how to install xcproj see its
|
34
|
+
[readme](https://github.com/0xced/xcproj).
|
35
|
+
[Cédric Luthi](https://github.com/0xced)
|
36
|
+
[#1275](https://github.com/CocoaPods/CocoaPods/issues/1275)
|
37
|
+
|
38
|
+
* Rationalized and cleaned up Pods project group structure and path specification.
|
39
|
+
|
40
|
+
* Create all necessary build configurations for *Pods.xcodeproj* at the project level. If the user’s project has more than just *Debug* and *Release* build configurations, they may be explicitly specified in the Podfile:
|
41
|
+
`xcodeproj 'MyApp', 'App Store' => :release, 'Debug' => :debug, 'Release' => :release`
|
42
|
+
If build configurations aren’t specified in the Podfile then they will be automatically picked from the user’s project in *Release* mode.
|
43
|
+
These changes will ensure that the `libPods.a` static library is not stripped for all configurations, as explained in [#1217](https://github.com/CocoaPods/CocoaPods/pull/1217).
|
44
|
+
[Cédric Luthi](https://github.com/0xced)
|
45
|
+
[#1294](https://github.com/CocoaPods/CocoaPods/issues/1294)
|
46
|
+
|
47
|
+
* Added basic support for Bazaar repositories.
|
48
|
+
[Fred McCann](https://github.com/fmccann)
|
49
|
+
[cocoapods-downloader#4](https://github.com/CocoaPods/cocoapods-downloader/pull/4)
|
50
|
+
|
51
|
+
###### Bug Fixes
|
52
|
+
|
53
|
+
* Fixed crash in `pod spec cat`.
|
54
|
+
|
55
|
+
* Use the `TARGET_BUILD_DIR` environment variable for installing resource bundles.
|
56
|
+
[Cédric Luthi](https://github.com/0xced)
|
57
|
+
[#1268](https://github.com/CocoaPods/CocoaPods/issues/1268)
|
58
|
+
|
59
|
+
* CoreData versioned models are now properly handled respecting the contents of
|
60
|
+
the `.xccurrentversion` file.
|
61
|
+
[#1288](https://github.com/CocoaPods/CocoaPods/issues/1288),
|
62
|
+
[Xcodeproj#83](https://github.com/CocoaPods/Xcodeproj/pull/83)
|
63
|
+
[Ashton-W](https://github.com/Ashton-W)
|
64
|
+
|
65
|
+
* OS X frameworks are now copied to the Resources folder using rsync to
|
66
|
+
properly overwrite existing files.
|
67
|
+
[Nikolaj Schumacher](https://github.com/nschum)
|
68
|
+
[#1063](https://github.com/CocoaPods/CocoaPods/issues/1063)
|
69
|
+
|
70
|
+
* User defined build configurations are now added to the resource bundle
|
71
|
+
targets.
|
72
|
+
[#1309](https://github.com/CocoaPods/CocoaPods/issues/1309),
|
73
|
+
|
74
|
+
|
7
75
|
## 0.23.0
|
8
76
|
|
77
|
+
|
78
|
+
## 0.23.0.rc1
|
79
|
+
|
9
80
|
###### Enhancements
|
10
81
|
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.22.3...0.23.0.rc1)
|
11
82
|
• [cocoapods-core](https://github.com/CocoaPods/Core/compare/0.22.3...0.23.0.rc1)
|
data/LICENSE
CHANGED
data/lib/cocoapods.rb
CHANGED
data/lib/cocoapods/command.rb
CHANGED
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'xcodeproj'
|
2
|
+
require 'active_support/core_ext/string/strip'
|
3
|
+
|
4
|
+
module Pod
|
5
|
+
class Command
|
6
|
+
class Init < Command
|
7
|
+
|
8
|
+
self.summary = 'Generate a Podfile for the current directory.'
|
9
|
+
self.description = <<-DESC
|
10
|
+
Creates a Podfile for the current directory if none currently exists. If
|
11
|
+
an Xcode project file is specified or if there is only a single project
|
12
|
+
file in the current directory, targets will be automatically generated
|
13
|
+
based on targets defined in the project.
|
14
|
+
|
15
|
+
It is possible to specify a list of dependencies which will be used by
|
16
|
+
the template in the `Podfile.default` (normal targets) `Podfile.test`
|
17
|
+
(test targets) files which should be stored in the
|
18
|
+
`~/.cocoapods/templates` folder.
|
19
|
+
DESC
|
20
|
+
self.arguments = '[XCODEPROJ]'
|
21
|
+
|
22
|
+
def initialize(argv)
|
23
|
+
@podfile_path = Pathname.pwd + "Podfile"
|
24
|
+
@project_path = argv.shift_argument
|
25
|
+
@project_paths = Pathname.pwd.children.select { |pn| pn.extname == '.xcodeproj' }
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
def validate!
|
30
|
+
super
|
31
|
+
raise Informative, "Existing Podfile found in directory" unless config.podfile.nil?
|
32
|
+
if @project_path
|
33
|
+
help! "Xcode project at #{@project_path} does not exist" unless File.exist? @project_path
|
34
|
+
else
|
35
|
+
raise Informative, "No xcode project found, please specify one" unless @project_paths.length > 0
|
36
|
+
raise Informative, "Multiple xcode projects found, please specify one" unless @project_paths.length == 1
|
37
|
+
@project_path = @project_paths.first
|
38
|
+
end
|
39
|
+
@xcode_project = Xcodeproj::Project.open(@project_path)
|
40
|
+
end
|
41
|
+
|
42
|
+
def run
|
43
|
+
@podfile_path.open('w') { |f| f << podfile_template(@xcode_project) }
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
# @param [Xcodeproj::Project] project
|
49
|
+
# The xcode project to generate a podfile for.
|
50
|
+
#
|
51
|
+
# @return [String] the text of the Podfile for the provided project
|
52
|
+
#
|
53
|
+
def podfile_template(project)
|
54
|
+
podfile = <<-PLATFORM.strip_heredoc
|
55
|
+
# Uncomment this line to define a global platform for your project
|
56
|
+
# platform :ios, "6.0"
|
57
|
+
PLATFORM
|
58
|
+
for target in project.targets
|
59
|
+
podfile << target_module(target)
|
60
|
+
end
|
61
|
+
podfile << "\n"
|
62
|
+
end
|
63
|
+
|
64
|
+
# @param [Xcodeproj::PBXTarget] target
|
65
|
+
# A target to generate a Podfile target module for.
|
66
|
+
#
|
67
|
+
# @return [String] the text for the target module
|
68
|
+
#
|
69
|
+
def target_module(target)
|
70
|
+
target_module = "\ntarget \"#{target.name}\" do\n"
|
71
|
+
|
72
|
+
if target.name =~ /tests?/i
|
73
|
+
target_module << template_contents(config.default_test_podfile_path)
|
74
|
+
else
|
75
|
+
target_module << template_contents(config.default_podfile_path)
|
76
|
+
end
|
77
|
+
target_module << "\nend\n"
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
def template_contents(path)
|
82
|
+
if path.exist?
|
83
|
+
path.read.chomp.lines.map{ |line| " #{line}" }.join("\n")
|
84
|
+
else
|
85
|
+
String.new
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -6,7 +6,7 @@ module Pod
|
|
6
6
|
self.summary = 'Setup the CocoaPods environment'
|
7
7
|
|
8
8
|
self.description = <<-DESC
|
9
|
-
Creates a directory at `~/.cocoapods` which will hold your spec-repos.
|
9
|
+
Creates a directory at `~/.cocoapods/repos` which will hold your spec-repos.
|
10
10
|
This is where it will create a clone of the public `master` spec-repo from:
|
11
11
|
|
12
12
|
https://github.com/CocoaPods/Specs
|
@@ -304,7 +304,7 @@ module Pod
|
|
304
304
|
# @return [Pathname] the absolute path of the given spec and source
|
305
305
|
#
|
306
306
|
def pathname_from_spec(spec, source)
|
307
|
-
|
307
|
+
config.repos_dir + "#{source}/#{spec.name}/#{spec.version}/#{spec.name}.podspec"
|
308
308
|
end
|
309
309
|
|
310
310
|
# @return [String] of spec paths one on each line
|
data/lib/cocoapods/config.rb
CHANGED
@@ -147,6 +147,12 @@ module Pod
|
|
147
147
|
|
148
148
|
attr_writer :repos_dir
|
149
149
|
|
150
|
+
# @return [Pathname] the directory where the CocoaPods templates are stored.
|
151
|
+
#
|
152
|
+
def templates_dir
|
153
|
+
@templates_dir ||= Pathname.new(ENV['CP_TEMPLATES_DIR'] || "~/.cocoapods/templates").expand_path
|
154
|
+
end
|
155
|
+
|
150
156
|
# @return [Pathname] the root of the CocoaPods installation where the
|
151
157
|
# Podfile is located.
|
152
158
|
#
|
@@ -223,6 +229,26 @@ module Pod
|
|
223
229
|
@lockfile_path ||= installation_root + 'Podfile.lock'
|
224
230
|
end
|
225
231
|
|
232
|
+
# Returns the path of the default Podfile pods.
|
233
|
+
#
|
234
|
+
# @note The file is expected to be named Podfile.default
|
235
|
+
#
|
236
|
+
# @return [Pathname]
|
237
|
+
#
|
238
|
+
def default_podfile_path
|
239
|
+
@default_podfile_path ||= templates_dir + "Podfile.default"
|
240
|
+
end
|
241
|
+
|
242
|
+
# Returns the path of the default Podfile test pods.
|
243
|
+
#
|
244
|
+
# @note The file is expected to be named Podfile.test
|
245
|
+
#
|
246
|
+
# @return [Pathname]
|
247
|
+
#
|
248
|
+
def default_test_podfile_path
|
249
|
+
@default_test_podfile_path ||= templates_dir + "Podfile.test"
|
250
|
+
end
|
251
|
+
|
226
252
|
# @return [Pathname] The file to use a cache of the statistics provider.
|
227
253
|
#
|
228
254
|
def statistics_cache_file
|
@@ -98,8 +98,8 @@ install_resource()
|
|
98
98
|
*.framework)
|
99
99
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
100
100
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
101
|
-
echo "
|
102
|
-
|
101
|
+
echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
102
|
+
rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
103
103
|
;;
|
104
104
|
*.xcdatamodel)
|
105
105
|
echo "xcrun momc \\"${PODS_ROOT}/$1\\" \\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\\""
|
data/lib/cocoapods/installer.rb
CHANGED
@@ -285,10 +285,23 @@ module Pod
|
|
285
285
|
#
|
286
286
|
def prepare_pods_project
|
287
287
|
UI.message "- Creating Pods project" do
|
288
|
-
@pods_project = Pod::Project.new(sandbox)
|
288
|
+
@pods_project = Pod::Project.new(sandbox.project_path)
|
289
|
+
|
290
|
+
analysis_result.all_user_build_configurations.each do |name, type|
|
291
|
+
@pods_project.add_build_configuration(name, type)
|
292
|
+
end
|
293
|
+
|
294
|
+
pod_names = pod_targets.map(&:pod_name).uniq
|
295
|
+
pod_names.each do |pod_name|
|
296
|
+
path = sandbox.pod_dir(pod_name)
|
297
|
+
local = sandbox.local?(pod_name)
|
298
|
+
@pods_project.add_pod_group(pod_name, path, local)
|
299
|
+
end
|
300
|
+
|
289
301
|
if config.podfile_path
|
290
302
|
@pods_project.add_podfile(config.podfile_path)
|
291
303
|
end
|
304
|
+
|
292
305
|
sandbox.project = @pods_project
|
293
306
|
platforms = aggregate_targets.map(&:platform)
|
294
307
|
osx_deployment_target = platforms.select { |p| p.name == :osx }.map(&:deployment_target).min
|
@@ -331,6 +344,16 @@ module Pod
|
|
331
344
|
target_installer = AggregateTargetInstaller.new(sandbox, target)
|
332
345
|
target_installer.install!
|
333
346
|
end
|
347
|
+
|
348
|
+
# TODO
|
349
|
+
# Move and add specs
|
350
|
+
pod_targets.sort_by(&:name).each do |pod_target|
|
351
|
+
pod_target.file_accessors.each do |file_accessor|
|
352
|
+
file_accessor.spec_consumer.frameworks.each do |framework|
|
353
|
+
ref = pods_project.add_system_framework(framework, pod_target.target)
|
354
|
+
end
|
355
|
+
end
|
356
|
+
end
|
334
357
|
end
|
335
358
|
end
|
336
359
|
|
@@ -360,10 +383,9 @@ module Pod
|
|
360
383
|
#
|
361
384
|
def link_aggregate_target
|
362
385
|
aggregate_targets.each do |aggregate_target|
|
363
|
-
native_target =
|
364
|
-
products = pods_project.products_group
|
386
|
+
native_target = aggregate_target.target
|
365
387
|
aggregate_target.pod_targets.each do |pod_target|
|
366
|
-
product =
|
388
|
+
product = pod_target.target.product_reference
|
367
389
|
native_target.frameworks_build_phase.add_file_reference(product)
|
368
390
|
end
|
369
391
|
end
|
@@ -375,9 +397,10 @@ module Pod
|
|
375
397
|
#
|
376
398
|
def write_pod_project
|
377
399
|
UI.message "- Writing Xcode project file to #{UI.path sandbox.project_path}" do
|
378
|
-
pods_project.
|
379
|
-
pods_project
|
380
|
-
pods_project.
|
400
|
+
pods_project.pods.remove_from_project if pods_project.pods.empty?
|
401
|
+
pods_project.development_pods.remove_from_project if pods_project.development_pods.empty?
|
402
|
+
pods_project.main_group.recursively_sort_by_type
|
403
|
+
pods_project.save
|
381
404
|
end
|
382
405
|
end
|
383
406
|
|
@@ -169,7 +169,7 @@ module Pod
|
|
169
169
|
|
170
170
|
if config.integrate_targets?
|
171
171
|
project_path = compute_user_project_path(target_definition)
|
172
|
-
user_project = Xcodeproj::Project.
|
172
|
+
user_project = Xcodeproj::Project.open(project_path)
|
173
173
|
native_targets = compute_user_project_targets(target_definition, user_project)
|
174
174
|
|
175
175
|
target.user_project_path = project_path
|
@@ -449,7 +449,7 @@ module Pod
|
|
449
449
|
podfile.target_definition_list.each do |target_definition|
|
450
450
|
if config.integrate_targets?
|
451
451
|
project_path = compute_user_project_path(target_definition)
|
452
|
-
user_project = Xcodeproj::Project.
|
452
|
+
user_project = Xcodeproj::Project.open(project_path)
|
453
453
|
targets = compute_user_project_targets(target_definition, user_project)
|
454
454
|
platform = compute_platform_for_target_definition(target_definition, targets)
|
455
455
|
else
|
@@ -488,6 +488,16 @@ module Pod
|
|
488
488
|
#
|
489
489
|
attr_accessor :targets
|
490
490
|
|
491
|
+
# @return [Hash{String=>Symbol}] A hash representing all the user build
|
492
|
+
# configurations across all integration targets. Each key
|
493
|
+
# corresponds to the name of a configuration and its value to
|
494
|
+
# its type (`:debug` or `:release`).
|
495
|
+
#
|
496
|
+
def all_user_build_configurations
|
497
|
+
targets.inject({}) do |result, target|
|
498
|
+
result.merge(target.user_build_configurations)
|
499
|
+
end
|
500
|
+
end
|
491
501
|
end
|
492
502
|
|
493
503
|
#-----------------------------------------------------------------------#
|
@@ -65,15 +65,11 @@ module Pod
|
|
65
65
|
# @note The source files are grouped by Pod and in turn by subspec
|
66
66
|
# (recursively).
|
67
67
|
#
|
68
|
-
# @note Pods are generally added to the `Pods` group, however, if they
|
69
|
-
# have a local source they are added to the
|
70
|
-
# `Local Pods` group.
|
71
|
-
#
|
72
68
|
# @return [void]
|
73
69
|
#
|
74
70
|
def add_source_files_references
|
75
71
|
UI.message "- Adding source files to Pods project" do
|
76
|
-
|
72
|
+
add_file_accessors_paths_to_pods_group(:source_files, :source_files)
|
77
73
|
end
|
78
74
|
end
|
79
75
|
|
@@ -83,7 +79,7 @@ module Pod
|
|
83
79
|
#
|
84
80
|
def add_frameworks_bundles
|
85
81
|
UI.message "- Adding frameworks to Pods project" do
|
86
|
-
|
82
|
+
add_file_accessors_paths_to_pods_group(:vendored_frameworks, :frameworks_and_libraries)
|
87
83
|
end
|
88
84
|
end
|
89
85
|
|
@@ -93,7 +89,7 @@ module Pod
|
|
93
89
|
#
|
94
90
|
def add_vendored_libraries
|
95
91
|
UI.message "- Adding frameworks to Pods project" do
|
96
|
-
|
92
|
+
add_file_accessors_paths_to_pods_group(:vendored_libraries, :frameworks_and_libraries)
|
97
93
|
end
|
98
94
|
end
|
99
95
|
|
@@ -106,8 +102,8 @@ module Pod
|
|
106
102
|
#
|
107
103
|
def add_resources
|
108
104
|
UI.message "- Adding resources to Pods project" do
|
109
|
-
|
110
|
-
|
105
|
+
add_file_accessors_paths_to_pods_group(:resources, :resources)
|
106
|
+
add_file_accessors_paths_to_pods_group(:resource_bundle_files, :resources)
|
111
107
|
end
|
112
108
|
end
|
113
109
|
|
@@ -160,7 +156,7 @@ module Pod
|
|
160
156
|
#
|
161
157
|
# @return [void]
|
162
158
|
#
|
163
|
-
def
|
159
|
+
def add_file_accessors_paths_to_pods_group(file_accessor_key, group_key)
|
164
160
|
file_accessors.each do |file_accessor|
|
165
161
|
paths = file_accessor.send(file_accessor_key)
|
166
162
|
paths.each do |path|
|
@@ -52,13 +52,7 @@ module Pod
|
|
52
52
|
@target.build_settings('Release').merge!(settings)
|
53
53
|
|
54
54
|
library.user_build_configurations.each do |bc_name, type|
|
55
|
-
|
56
|
-
build_config = project.new(Xcodeproj::Project::XCBuildConfiguration)
|
57
|
-
build_config.name = bc_name
|
58
|
-
settings = @target.build_settings(type.to_s.capitalize).dup
|
59
|
-
build_config.build_settings = settings
|
60
|
-
target.build_configurations << build_config
|
61
|
-
end
|
55
|
+
@target.add_build_configuration(bc_name, type)
|
62
56
|
end
|
63
57
|
|
64
58
|
library.target = @target
|
@@ -126,8 +120,7 @@ module Pod
|
|
126
120
|
# @return [PBXFileReference] the file reference of the added file.
|
127
121
|
#
|
128
122
|
def add_file_to_support_group(path)
|
129
|
-
|
130
|
-
support_files_group.new_file(relative_path)
|
123
|
+
support_files_group.new_file(path)
|
131
124
|
end
|
132
125
|
|
133
126
|
#-----------------------------------------------------------------------#
|
@@ -90,8 +90,8 @@ module Pod
|
|
90
90
|
path = library.copy_resources_script_path
|
91
91
|
UI.message "- Generating copy resources script at #{UI.path(path)}" do
|
92
92
|
file_accessors = library.pod_targets.map(&:file_accessors).flatten
|
93
|
-
resource_paths = file_accessors.map { |accessor| accessor.resources.flatten.map {|res| project.
|
94
|
-
resource_bundles = file_accessors.map { |accessor| accessor.resource_bundles.keys.map {|name| "${
|
93
|
+
resource_paths = file_accessors.map { |accessor| accessor.resources.flatten.map { |res| res.relative_path_from(project.path.dirname) }}.flatten
|
94
|
+
resource_bundles = file_accessors.map { |accessor| accessor.resource_bundles.keys.map {|name| "${TARGET_BUILD_DIR}/#{name}.bundle" } }.flatten
|
95
95
|
resources = []
|
96
96
|
resources.concat(resource_paths)
|
97
97
|
resources.concat(resource_bundles)
|
@@ -13,9 +13,10 @@ module Pod
|
|
13
13
|
def install!
|
14
14
|
UI.message "- Installing target `#{library.name}` #{library.platform}" do
|
15
15
|
add_target
|
16
|
+
move_target_product_file_reference
|
16
17
|
add_files_to_build_phases
|
17
18
|
add_resources_bundle_targets
|
18
|
-
create_suport_files_group
|
19
|
+
# create_suport_files_group
|
19
20
|
create_xcconfig_file
|
20
21
|
create_prefix_header
|
21
22
|
create_dummy_source
|
@@ -40,16 +41,19 @@ module Pod
|
|
40
41
|
consumer = file_accessor.spec_consumer
|
41
42
|
flags = compiler_flags_for_consumer(consumer)
|
42
43
|
source_files = file_accessor.source_files
|
43
|
-
file_refs = source_files.map { |sf| project.
|
44
|
+
file_refs = source_files.map { |sf| project.reference_for_path(sf) }
|
44
45
|
target.add_file_references(file_refs, flags)
|
45
46
|
|
46
|
-
file_accessor.spec_consumer.frameworks.each do |framework|
|
47
|
-
project.add_system_framework(framework, target)
|
48
|
-
end
|
49
47
|
end
|
50
48
|
end
|
51
49
|
end
|
52
50
|
|
51
|
+
def move_target_product_file_reference
|
52
|
+
pod_name = library.pod_name
|
53
|
+
group = project.group_for_spec(pod_name, :products)
|
54
|
+
target.product_reference.move(group)
|
55
|
+
end
|
56
|
+
|
53
57
|
# Adds the resources of the Pods to the Pods project.
|
54
58
|
#
|
55
59
|
# @note The source files are grouped by Pod and in turn by subspec
|
@@ -61,12 +65,16 @@ module Pod
|
|
61
65
|
UI.message "- Adding resource bundles to Pods project" do
|
62
66
|
library.file_accessors.each do |file_accessor|
|
63
67
|
file_accessor.resource_bundles.each do |bundle_name, paths|
|
64
|
-
file_references = paths.map { |sf| project.
|
65
|
-
group = project.group_for_spec(file_accessor.spec.name, :
|
68
|
+
file_references = paths.map { |sf| project.reference_for_path(sf) }
|
69
|
+
group = project.group_for_spec(file_accessor.spec.name, :products)
|
66
70
|
product_group = project.group_for_spec(file_accessor.spec.name, :resources)
|
67
71
|
bundle_target = project.new_resources_bundle(bundle_name, file_accessor.spec_consumer.platform_name, product_group)
|
68
72
|
bundle_target.add_resources(file_references)
|
69
73
|
|
74
|
+
library.user_build_configurations.each do |bc_name, type|
|
75
|
+
bundle_target.add_build_configuration(bc_name, type)
|
76
|
+
end
|
77
|
+
|
70
78
|
target.add_dependency(bundle_target)
|
71
79
|
end
|
72
80
|
end
|
@@ -179,6 +187,19 @@ module Pod
|
|
179
187
|
flags * " "
|
180
188
|
end
|
181
189
|
|
190
|
+
# Adds a reference to the given file in the support group of this target.
|
191
|
+
#
|
192
|
+
# @param [Pathname] path
|
193
|
+
# The path of the file to which the reference should be added.
|
194
|
+
#
|
195
|
+
# @return [PBXFileReference] the file reference of the added file.
|
196
|
+
#
|
197
|
+
def add_file_to_support_group(path)
|
198
|
+
pod_name = library.pod_name
|
199
|
+
group = project.group_for_spec(pod_name, :support_files)
|
200
|
+
group.new_file(path)
|
201
|
+
end
|
202
|
+
|
182
203
|
#-----------------------------------------------------------------------#
|
183
204
|
|
184
205
|
end
|
@@ -32,7 +32,7 @@ module Pod
|
|
32
32
|
add_pods_library
|
33
33
|
add_copy_resources_script_phase
|
34
34
|
add_check_manifest_lock_script_phase
|
35
|
-
|
35
|
+
user_project.save
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -66,14 +66,14 @@ module Pod
|
|
66
66
|
# other TargetIntegrators might have modified it.
|
67
67
|
#
|
68
68
|
def user_project
|
69
|
-
@user_project ||= Xcodeproj::Project.
|
69
|
+
@user_project ||= Xcodeproj::Project.open(target.user_project_path)
|
70
70
|
end
|
71
71
|
|
72
72
|
# Read the pods project from the disk to ensure that it is up to date as
|
73
73
|
# other TargetIntegrators might have modified it.
|
74
74
|
#
|
75
75
|
def pods_project
|
76
|
-
@pods_project ||= Xcodeproj::Project.
|
76
|
+
@pods_project ||= Xcodeproj::Project.open(target.sandbox.project_path)
|
77
77
|
end
|
78
78
|
|
79
79
|
# @return [String] a string representation suitable for debugging.
|
@@ -182,14 +182,6 @@ module Pod
|
|
182
182
|
end
|
183
183
|
end
|
184
184
|
|
185
|
-
# Saves the changes to the user project to the disk.
|
186
|
-
#
|
187
|
-
# @return [void]
|
188
|
-
#
|
189
|
-
def save_user_project
|
190
|
-
user_project.save_as(target.user_project_path)
|
191
|
-
end
|
192
|
-
|
193
185
|
#---------------------------------------------------------------------#
|
194
186
|
|
195
187
|
# @!group Private helpers.
|
data/lib/cocoapods/project.rb
CHANGED
@@ -9,230 +9,202 @@ module Pod
|
|
9
9
|
#
|
10
10
|
class Project < Xcodeproj::Project
|
11
11
|
|
12
|
-
|
13
|
-
# @
|
14
|
-
#
|
15
|
-
#
|
16
|
-
attr_reader :sandbox
|
17
|
-
|
18
|
-
# @param [Sandbox] sandbox @see #sandbox
|
12
|
+
# @param [Pathname, String] path @see path
|
13
|
+
# @param [Bool] skip_initialization
|
14
|
+
# Wether the project should be initialized from scratch.
|
19
15
|
#
|
20
|
-
def initialize(
|
21
|
-
super(
|
22
|
-
# TODO
|
23
|
-
raise unless sandbox.is_a?(Sandbox)
|
24
|
-
@sandbox = sandbox
|
25
|
-
@path = sandbox.project_path
|
16
|
+
def initialize(path, skip_initialization = false)
|
17
|
+
super(path, skip_initialization)
|
26
18
|
@support_files_group = new_group('Targets Support Files')
|
27
|
-
|
28
19
|
@refs_by_absolute_path = {}
|
20
|
+
@pods = new_group('Pods')
|
21
|
+
@development_pods = new_group('Development Pods')
|
29
22
|
end
|
30
23
|
|
31
|
-
# @return [
|
32
|
-
#
|
24
|
+
# @return [PBXGroup] The group for the support files of the aggregate
|
25
|
+
# targets.
|
33
26
|
#
|
34
|
-
attr_reader :
|
27
|
+
attr_reader :support_files_group
|
35
28
|
|
36
|
-
# @return [
|
29
|
+
# @return [PBXGroup] The group for the Pods.
|
37
30
|
#
|
38
|
-
|
39
|
-
@root ||= path.dirname
|
40
|
-
end
|
31
|
+
attr_reader :pods
|
41
32
|
|
42
|
-
# @return [
|
33
|
+
# @return [PBXGroup] The group for Development Pods.
|
43
34
|
#
|
44
|
-
|
45
|
-
|
35
|
+
attr_reader :development_pods
|
36
|
+
|
37
|
+
|
38
|
+
public
|
39
|
+
|
40
|
+
# @!group Pod Groups
|
41
|
+
#-------------------------------------------------------------------------#
|
42
|
+
|
43
|
+
# Creates a new group for the Pod with the given name and configures its
|
44
|
+
# path.
|
46
45
|
#
|
47
|
-
# @
|
48
|
-
#
|
49
|
-
# {Pathname#relative_path_from}.
|
46
|
+
# @param [String] pod_name
|
47
|
+
# The name of the Pod.
|
50
48
|
#
|
51
|
-
# @
|
49
|
+
# @param [#to_s] path
|
50
|
+
# The path to the root of the Pod.
|
52
51
|
#
|
53
|
-
#
|
54
|
-
#
|
52
|
+
# @param [Bool] development
|
53
|
+
# Wether the group should be added to the Development Pods group.
|
55
54
|
#
|
56
|
-
#
|
57
|
-
#
|
55
|
+
# @param [Bool] absolute
|
56
|
+
# Wether the path of the group should be set as absolute.
|
58
57
|
#
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
# @return [PBXGroup] The new group.
|
59
|
+
#
|
60
|
+
def add_pod_group(pod_name, path, development = false, absolute = false)
|
61
|
+
raise "[BUG]" if pod_group(pod_name)
|
63
62
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
63
|
+
parent_group = development ? development_pods : pods
|
64
|
+
source_tree = absolute ? :absolute : :group
|
65
|
+
group = parent_group.new_group(pod_name, path, source_tree)
|
66
|
+
support_files_group = group.new_group(SPEC_SUBGROUPS[:support_files])
|
67
|
+
support_files_group.source_tree = 'SOURCE_ROOT'
|
68
|
+
group
|
69
69
|
end
|
70
70
|
|
71
|
-
# @return [
|
71
|
+
# @return [Array<PBXGroup>] Returns all the group of the Pods.
|
72
72
|
#
|
73
|
-
def
|
74
|
-
|
73
|
+
def pod_groups
|
74
|
+
pods.children.objects + development_pods.children.objects
|
75
75
|
end
|
76
76
|
|
77
|
-
|
78
|
-
|
79
|
-
public
|
80
|
-
|
81
|
-
# @!group Groups
|
82
|
-
|
83
|
-
# @return [PBXGroup] the group where the support files for the Pod
|
84
|
-
# libraries should be added.
|
77
|
+
# Returns the group for the Pod with the given name.
|
85
78
|
#
|
86
|
-
|
87
|
-
|
88
|
-
# Returns the `Pods` group, creating it if needed.
|
79
|
+
# @param [String] pod_name
|
80
|
+
# The name of the Pod.
|
89
81
|
#
|
90
|
-
# @return [PBXGroup]
|
82
|
+
# @return [PBXGroup] The group.
|
91
83
|
#
|
92
|
-
def
|
93
|
-
|
84
|
+
def pod_group(pod_name)
|
85
|
+
pod_groups.find { |group| group.name == pod_name }
|
94
86
|
end
|
95
87
|
|
96
|
-
#
|
97
|
-
# to contain locally sourced pods.
|
88
|
+
# @return [Hash] The names of the specification subgroups by key.
|
98
89
|
#
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
90
|
+
SPEC_SUBGROUPS = {
|
91
|
+
:source_files => 'Source Files',
|
92
|
+
:resources => 'Resources',
|
93
|
+
:frameworks_and_libraries => 'Frameworks & Libraries',
|
94
|
+
:support_files => 'Support Files',
|
95
|
+
:subspecs => 'Subspecs',
|
96
|
+
:products => 'Products',
|
97
|
+
}
|
104
98
|
|
105
|
-
# Returns the
|
106
|
-
#
|
99
|
+
# Returns the group for the specification with the give name creating it if
|
100
|
+
# needed.
|
107
101
|
#
|
108
|
-
# @
|
102
|
+
# @param [String] spec_name
|
103
|
+
# The full name of the specification.
|
109
104
|
#
|
110
|
-
|
111
|
-
|
112
|
-
end
|
113
|
-
|
114
|
-
|
115
|
-
# @return [PBXGroup] the group for the spec with the given name.
|
105
|
+
# @param [Symbol] subgroup_key
|
106
|
+
# The optional key of the subgroup (@see #{SPEC_SUBGROUPS})
|
116
107
|
#
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
spec_group =
|
121
|
-
if
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
when :frameworks_and_libraries then sub_group = 'Frameworks & Libraries'
|
126
|
-
when :support_files then sub_group = 'Support Files'
|
127
|
-
else raise "[BUG]"
|
128
|
-
end
|
129
|
-
spec_group.find_subpath(sub_group, true)
|
108
|
+
# @return [PBXGroup] The group.
|
109
|
+
#
|
110
|
+
def group_for_spec(spec_name, subgroup_key = nil)
|
111
|
+
spec_group = spec_group(spec_name)
|
112
|
+
if subgroup_key
|
113
|
+
subgroup = SPEC_SUBGROUPS[subgroup_key]
|
114
|
+
raise ArgumentError, "Unrecognized subgroup `#{subgroup_key}`" unless subgroup
|
115
|
+
spec_group.find_subpath(subgroup, true)
|
130
116
|
else
|
131
117
|
spec_group
|
132
118
|
end
|
133
119
|
end
|
134
120
|
|
135
|
-
#-------------------------------------------------------------------------#
|
136
121
|
|
137
122
|
public
|
138
123
|
|
139
124
|
# @!group File references
|
125
|
+
#-------------------------------------------------------------------------#
|
140
126
|
|
141
|
-
# Adds a file reference
|
142
|
-
# group, namespaced by specification unless a file reference for the given
|
143
|
-
# path already exits.
|
127
|
+
# Adds a file reference to given path as a child of the given group.
|
144
128
|
#
|
145
|
-
# @
|
146
|
-
#
|
147
|
-
# limitation or a feature.
|
129
|
+
# @param [Array<Pathname,String>] absolute_path
|
130
|
+
# The path of the file.
|
148
131
|
#
|
149
|
-
# @param [
|
150
|
-
# The
|
132
|
+
# @param [PBXGroup] group
|
133
|
+
# The group for the new file reference.
|
151
134
|
#
|
152
|
-
# @
|
153
|
-
# The full name of the specification.
|
154
|
-
#
|
155
|
-
# @param [PBXGroup] parent_group
|
156
|
-
# The group where the file references should be added.
|
135
|
+
# @return [PBXFileReference] The new file reference.
|
157
136
|
#
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
group = group_for_spec(spec_name, :source_files)
|
162
|
-
absolute_path.each do |file|
|
163
|
-
existing = file_reference(file)
|
164
|
-
unless existing
|
165
|
-
file = Pathname.new(file)
|
166
|
-
ref = group.new_file(relativize(file))
|
167
|
-
@refs_by_absolute_path[file] = ref
|
168
|
-
end
|
137
|
+
def add_file_reference(absolute_path, group)
|
138
|
+
unless Pathname.new(absolute_path).absolute?
|
139
|
+
raise ArgumentError, "Paths must be absolute #{absolute_path}"
|
169
140
|
end
|
170
|
-
end
|
171
141
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
142
|
+
if ref = reference_for_path(absolute_path)
|
143
|
+
ref
|
144
|
+
else
|
145
|
+
ref = group.new_file(absolute_path)
|
146
|
+
@refs_by_absolute_path[absolute_path.to_s] = ref
|
147
|
+
end
|
177
148
|
end
|
178
149
|
|
179
|
-
# Returns the file reference for the given absolute
|
150
|
+
# Returns the file reference for the given absolute path.
|
180
151
|
#
|
181
|
-
# @param [
|
152
|
+
# @param [#to_s] absolute_path
|
182
153
|
# The absolute path of the file whose reference is needed.
|
183
154
|
#
|
184
155
|
# @return [PBXFileReference] The file reference.
|
185
156
|
# @return [Nil] If no file reference could be found.
|
186
157
|
#
|
187
|
-
def
|
188
|
-
|
189
|
-
|
158
|
+
def reference_for_path(absolute_path)
|
159
|
+
unless Pathname.new(absolute_path).absolute?
|
160
|
+
raise ArgumentError, "Paths must be absolute #{absolute_path}"
|
161
|
+
end
|
162
|
+
|
163
|
+
refs_by_absolute_path[absolute_path.to_s]
|
190
164
|
end
|
191
165
|
|
192
|
-
# Adds a file reference to the
|
166
|
+
# Adds a file reference to the Podfile.
|
193
167
|
#
|
194
|
-
# @param [
|
195
|
-
#
|
168
|
+
# @param [#to_s] podfile_path
|
169
|
+
# The path of the Podfile.
|
196
170
|
#
|
197
|
-
# @return [PBXFileReference]
|
171
|
+
# @return [PBXFileReference] The new file reference.
|
198
172
|
#
|
199
173
|
def add_podfile(podfile_path)
|
200
|
-
|
201
|
-
podfile_ref = new_file(relativize(podfile_path))
|
174
|
+
podfile_ref = new_file(podfile_path, :project)
|
202
175
|
podfile_ref.xc_language_specification_identifier = 'xcode.lang.ruby'
|
203
176
|
podfile_ref.last_known_file_type = 'text'
|
204
177
|
podfile_ref
|
205
178
|
end
|
206
179
|
|
207
|
-
#-------------------------------------------------------------------------#
|
208
180
|
|
209
181
|
private
|
210
182
|
|
211
183
|
# @!group Private helpers
|
184
|
+
#-------------------------------------------------------------------------#
|
212
185
|
|
213
|
-
# @return [Hash{
|
186
|
+
# @return [Hash{String => PBXFileReference}] The file references grouped
|
214
187
|
# by absolute path.
|
215
188
|
#
|
216
189
|
attr_reader :refs_by_absolute_path
|
217
190
|
|
218
|
-
# Returns
|
219
|
-
# needed.
|
191
|
+
# Returns the group for the given specification creating it if needed.
|
220
192
|
#
|
221
193
|
# @param [String] spec_name
|
222
194
|
# The full name of the specification.
|
223
195
|
#
|
224
|
-
# @
|
225
|
-
#
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
196
|
+
# @return [PBXGroup] The group for the spec with the given name.
|
197
|
+
#
|
198
|
+
def spec_group(spec_name)
|
199
|
+
pod_name = Specification.root_name(spec_name)
|
200
|
+
group = pod_group(pod_name)
|
201
|
+
raise "[Bug] Unable to locate group for Pod named `#{pod_name}`" unless group
|
202
|
+
if spec_name != pod_name
|
203
|
+
subspecs_names = spec_name.gsub(pod_name + '/', '').split('/')
|
204
|
+
subspecs_names.each do |name|
|
205
|
+
subspecs_group = group[SPEC_SUBGROUPS[:subspecs]] || group.new_group(SPEC_SUBGROUPS[:subspecs])
|
206
|
+
group = subspecs_group[name] || subspecs_group.new_group(name)
|
207
|
+
end
|
236
208
|
end
|
237
209
|
group
|
238
210
|
end
|
data/lib/cocoapods/sandbox.rb
CHANGED
@@ -67,7 +67,7 @@ module Pod
|
|
67
67
|
@predownloaded_pods = []
|
68
68
|
@head_pods = []
|
69
69
|
@checkout_sources = {}
|
70
|
-
@
|
70
|
+
@development_pods = {}
|
71
71
|
FileUtils.mkdir_p(@root)
|
72
72
|
end
|
73
73
|
|
@@ -152,7 +152,7 @@ module Pod
|
|
152
152
|
def pod_dir(name)
|
153
153
|
root_name = Specification.root_name(name)
|
154
154
|
if local?(root_name)
|
155
|
-
Pathname.new(
|
155
|
+
Pathname.new(development_pods[root_name])
|
156
156
|
else
|
157
157
|
# root + "Sources/#{name}"
|
158
158
|
root + root_name
|
@@ -342,7 +342,7 @@ module Pod
|
|
342
342
|
#
|
343
343
|
def store_local_path(name, path)
|
344
344
|
root_name = Specification.root_name(name)
|
345
|
-
|
345
|
+
development_pods[root_name] = path.to_s
|
346
346
|
end
|
347
347
|
|
348
348
|
# @return [Hash{String=>String}] The path of the Pods with a local source
|
@@ -350,7 +350,7 @@ module Pod
|
|
350
350
|
#
|
351
351
|
# @todo Rename (e.g. `pods_with_local_path`)
|
352
352
|
#
|
353
|
-
attr_reader :
|
353
|
+
attr_reader :development_pods
|
354
354
|
|
355
355
|
# Checks if a Pod is locally sourced?
|
356
356
|
#
|
@@ -361,7 +361,7 @@ module Pod
|
|
361
361
|
#
|
362
362
|
def local?(name)
|
363
363
|
root_name = Specification.root_name(name)
|
364
|
-
!
|
364
|
+
!development_pods[root_name].nil?
|
365
365
|
end
|
366
366
|
|
367
367
|
#-------------------------------------------------------------------------#
|
@@ -283,23 +283,41 @@ module Pod
|
|
283
283
|
end
|
284
284
|
UI = UserInterface
|
285
285
|
|
286
|
+
#---------------------------------------------------------------------------#
|
287
|
+
|
286
288
|
# Redirects cocoapods-core UI.
|
287
289
|
#
|
288
290
|
module CoreUI
|
289
291
|
|
290
292
|
class << self
|
291
293
|
|
292
|
-
# @todo enable in CocoaPods 0.17.0 release
|
293
|
-
#
|
294
294
|
def puts(message)
|
295
|
-
|
295
|
+
UI.puts message
|
296
296
|
end
|
297
297
|
|
298
|
-
# @todo enable in CocoaPods 0.17.0 release
|
299
|
-
#
|
300
298
|
def warn(message)
|
301
|
-
|
299
|
+
UI.warn message
|
302
300
|
end
|
303
301
|
end
|
304
302
|
end
|
305
303
|
end
|
304
|
+
|
305
|
+
#---------------------------------------------------------------------------#
|
306
|
+
|
307
|
+
module Xcodeproj
|
308
|
+
|
309
|
+
# Redirects xcodeproj UI.
|
310
|
+
#
|
311
|
+
module UserInterface
|
312
|
+
|
313
|
+
def self.puts(message)
|
314
|
+
::Pod::UI.puts message
|
315
|
+
end
|
316
|
+
|
317
|
+
def self.warn(message)
|
318
|
+
::Pod::UI.warn message
|
319
|
+
end
|
320
|
+
|
321
|
+
end
|
322
|
+
end
|
323
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cocoapods-core
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.
|
20
|
+
version: 0.24.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: 0.24.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: claide
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,28 +45,28 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - ~>
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: 0.2.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: 0.2.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: xcodeproj
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.10.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 0.10.0
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: colored
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,42 +101,42 @@ dependencies:
|
|
101
101
|
requirements:
|
102
102
|
- - ~>
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 1.8
|
104
|
+
version: '1.8'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - ~>
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 1.8
|
111
|
+
version: '1.8'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: open4
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - ~>
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 1.3
|
118
|
+
version: '1.3'
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 1.3
|
125
|
+
version: '1.3'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: activesupport
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - ~>
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 3.
|
132
|
+
version: '3.0'
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - ~>
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 3.
|
139
|
+
version: '3.0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: bacon
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,6 +167,7 @@ extensions: []
|
|
167
167
|
extra_rdoc_files: []
|
168
168
|
files:
|
169
169
|
- lib/cocoapods/command/help.rb
|
170
|
+
- lib/cocoapods/command/init.rb
|
170
171
|
- lib/cocoapods/command/inter_process_communication.rb
|
171
172
|
- lib/cocoapods/command/lib.rb
|
172
173
|
- lib/cocoapods/command/list.rb
|
@@ -234,39 +235,42 @@ homepage: https://github.com/CocoaPods/CocoaPods
|
|
234
235
|
licenses:
|
235
236
|
- MIT
|
236
237
|
metadata: {}
|
237
|
-
post_install_message: "\nCHANGELOG:\n\n## 0.
|
238
|
+
post_install_message: "\nCHANGELOG:\n\n## 0.24.0\n\n###### Enhancements\n[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.22.3...0.23.0.rc1)\n•
|
238
239
|
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.22.3...0.23.0.rc1)\n•
|
239
|
-
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.8.1...0.9.0)\n• [cocoapods-downloader](https://github.com/CocoaPods/cocoapods-downloader/compare/0.1.1...0.1.2)\n\n
|
240
|
-
Added `
|
241
|
-
|
242
|
-
\
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
\
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
\ \n [
|
269
|
-
|
240
|
+
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.8.1...0.9.0)\n• [cocoapods-downloader](https://github.com/CocoaPods/cocoapods-downloader/compare/0.1.1...0.1.2)\n\n\n######
|
241
|
+
Enhancements\n\n* Added `pod init` command which generates a Podfile according to
|
242
|
+
the\n targets of the project stored in the working directory and to the templates\n
|
243
|
+
\ stored in the `~/.cocoapods/templates` folder. Tow templates are supported: \n
|
244
|
+
\ - the `Podfile.default` template for regular targets.\n - and the `Podfile.test`
|
245
|
+
template for test targets. \n \n [Ian Ynda-Hummel](https://github.com/ianyh)\n
|
246
|
+
\ [#1106](https://github.com/CocoaPods/CocoaPods/issues/1106) \n [#1045](https://github.com/CocoaPods/CocoaPods/issues/1045)
|
247
|
+
\ \n\n* CocoaPods will now leverage the [xcproj](https://github.com/0xced/xcproj)\n
|
248
|
+
\ command line tool if available in the path of the user to touch saved\n projects.
|
249
|
+
This will result in projects being serialized in the exact format\n used by Xcode
|
250
|
+
eliminating merge conflicts and other related issues. To learn\n more about how
|
251
|
+
to install xcproj see its\n [readme](https://github.com/0xced/xcproj). \n [Cédric
|
252
|
+
Luthi](https://github.com/0xced) \n [#1275](https://github.com/CocoaPods/CocoaPods/issues/1275)
|
253
|
+
\ \n \n* Rationalized and cleaned up Pods project group structure and path specification.\n\n*
|
254
|
+
Create all necessary build configurations for *Pods.xcodeproj* at the project level.
|
255
|
+
If the user’s project has more than just *Debug* and *Release* build configurations,
|
256
|
+
they may be explicitly specified in the Podfile: \n`xcodeproj 'MyApp', 'App Store'
|
257
|
+
=> :release, 'Debug' => :debug, 'Release' => :release` \n If build configurations
|
258
|
+
aren’t specified in the Podfile then they will be automatically picked from the
|
259
|
+
user’s project in *Release* mode. \n These changes will ensure that the `libPods.a`
|
260
|
+
static library is not stripped for all configurations, as explained in [#1217](https://github.com/CocoaPods/CocoaPods/pull/1217).
|
261
|
+
\ \n [Cédric Luthi](https://github.com/0xced) \n [#1294](https://github.com/CocoaPods/CocoaPods/issues/1294)\n\n*
|
262
|
+
Added basic support for Bazaar repositories. \n [Fred McCann](https://github.com/fmccann)
|
263
|
+
\ \n [cocoapods-downloader#4](https://github.com/CocoaPods/cocoapods-downloader/pull/4)\n\n######
|
264
|
+
Bug Fixes\n\n* Fixed crash in `pod spec cat`.\n\n* Use the `TARGET_BUILD_DIR` environment
|
265
|
+
variable for installing resource bundles. \n [Cédric Luthi](https://github.com/0xced)
|
266
|
+
\ \n [#1268](https://github.com/CocoaPods/CocoaPods/issues/1268) \n\n* CoreData
|
267
|
+
versioned models are now properly handled respecting the contents of\n the `.xccurrentversion`
|
268
|
+
file. \n [#1288](https://github.com/CocoaPods/CocoaPods/issues/1288),\n [Xcodeproj#83](https://github.com/CocoaPods/Xcodeproj/pull/83)
|
269
|
+
\ \n [Ashton-W](https://github.com/Ashton-W)\n\n* OS X frameworks are now copied
|
270
|
+
to the Resources folder using rsync to\n properly overwrite existing files. \n
|
271
|
+
\ [Nikolaj Schumacher](https://github.com/nschum)\n [#1063](https://github.com/CocoaPods/CocoaPods/issues/1063)\n\n*
|
272
|
+
User defined build configurations are now added to the resource bundle\n targets.
|
273
|
+
\ \n [#1309](https://github.com/CocoaPods/CocoaPods/issues/1309),\n\n\n"
|
270
274
|
rdoc_options: []
|
271
275
|
require_paths:
|
272
276
|
- lib
|