Commit 46c17eae authored by Fabio Pelosin's avatar Fabio Pelosin

Merge branch 'master' into sandbox_reorganization_544

* master: (86 commits)
  Pretty podfile-info && add license note to changelog
  add licenses & tweaks for grammar
  more copy tweaks
  Fix specs
  Fix escaping
  Fix for the xcrun commands and dirs with spaces
  update new podspec help file
  Just add license as a key to get from the specification
  [Bundle] Always add simplecov as a coveralls dependency.
  Release 0.22.3
  [Bundle] Update for 0.22.3
  Add link to ticket to TODO.
  Move license info into podfile-info command
  [CHANGELOG] Cleanup.
  [xcconfig] Always exlude `USE_HEADERMAP` from the user’s project. #1216
  [CHANGELOG] Update for 0.22.3
  Add licenses command to pod cli
  Add description of STRIP_INSTALLED_PRODUCT change to the changelog.
  Update spec to pass with the addition of the STRIP_INSTALLED_PRODUCT to the generated Pods Xcode projects.
  Add the STRIP_INSTALLED_PRODUCT buld setting to the Pods project, setting it to 'NO'. This will prevent Xcode from stripping debug symbols from the Pods libraries while performing an archive build, allowing the main project targets to include pods symbols in generated dSYMs for Archive builds.
  ...

Conflicts:
	examples/AFNetworking iOS Example/AFNetworking iOS Example.xcodeproj/project.pbxproj
	spec/integration/install_add_pod/after/Pods/Pods-JSONKit-Private.xcconfig
	spec/integration/install_add_pod/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_add_pod/after/Pods/Pods-resources.sh
	spec/integration/install_add_pod/after/Pods/Pods.xcconfig
	spec/integration/install_add_pod/after/Pods/Pods.xcodeproj.yaml
	spec/integration/install_custom_workspace/after/Pods/Generated/Pods-SampleApp_1.xcconfig
	spec/integration/install_custom_workspace/after/Pods/Generated/Pods-SampleApp_2.xcconfig
	spec/integration/install_custom_workspace/after/Pods/Pods-SampleApp_1-Reachability-Private.xcconfig
	spec/integration/install_custom_workspace/after/Pods/Pods-SampleApp_2-Reachability-Private.xcconfig
	spec/integration/install_external_source/after/Pods/Pods-PodTest-Private.xcconfig
	spec/integration/install_external_source/after/execution_output.txt
	spec/integration/install_local_source/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Generated/Pods-SampleApp_2.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Generated/Pods.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Pods-SampleApp_2-JSONKit-Private.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Pods-SampleApp_2-Reachability-Private.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Pods-test-JSONKit-Private.xcconfig
	spec/integration/install_multiple_targets/after/Pods/Pods-test.xcconfig
	spec/integration/install_new/after/Pods/Generated/Pods.xcconfig
	spec/integration/install_new/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_podfile_callbacks/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_podspec/after/Pods/Generated/Pods.xcconfig
	spec/integration/install_podspec/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_remove_pod/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_remove_pod/after/Pods/Pods-resources.sh
	spec/integration/install_remove_pod/after/Pods/Pods.xcconfig
	spec/integration/install_remove_pod/after/Pods/Pods.xcodeproj.yaml
	spec/integration/install_spec_callbacks/after/Pods/Generated/Pods.xcconfig
	spec/integration/install_spec_callbacks/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/install_spec_callbacks/after/Pods/Pods.xcconfig
	spec/integration/install_subspecs/after/Pods/Pods-OS X App-PodTest-Private.xcconfig
	spec/integration/install_subspecs/after/Pods/Pods-iOS App-PodTest-Private.xcconfig
	spec/integration/install_subspecs/after/execution_output.txt
	spec/integration/update/after/Pods/Generated/Pods.xcconfig
	spec/integration/update/after/Pods/Pods-Reachability-Private.xcconfig
	spec/integration/update/after/Pods/Pods-resources.sh
	spec/integration/update/after/Pods/Pods.xcconfig
	spec/integration/update/after/Pods/Pods.xcodeproj.yaml
	spec/unit/hooks/library_representation_spec.rb
parents e258ecaa 529cce54
......@@ -29,3 +29,5 @@ examples/**/Pods
examples/RelativePathProject/RelativePathProject/RelativePathProject.xcodeproj
coverage/
.coveralls.yml
*.xccheckout
......@@ -2,6 +2,143 @@
To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides/installing_cocoapods.html).
## Master
* Added license information to `podfile-info` subcommand.
[#1219](https://github.com/CocoaPods/CocoaPods/issues/1219)
## 0.22.3
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.22.2...0.22.3)
###### Enhancements
* Add support for .xcdatamodel resource files (in addition to .xcdatamodeld).
[#1201](https://github.com/CocoaPods/CocoaPods/pull/1201)
###### Bug Fixes
* Always exlude `USE_HEADERMAP` from the user’s project.
[#1216](https://github.com/CocoaPods/CocoaPods/issues/1216)
* Use correct template repo when using the `pod lib create` command.
[#1214](https://github.com/CocoaPods/CocoaPods/issues/1214)
* Fixed issue with `pod push` failing when the podspec is unchanged. It will now
report `[No change] ExamplePod (0.1.0)` and continue to push other podspecs if
they exist. [#1199](https://github.com/CocoaPods/CocoaPods/pull/1199)
* Set STRIP_INSTALLED_PRODUCT = NO in the generated Pods project. This allows
Xcode to include symbols from CocoaPods in dSYMs during Archive builds.
[#1217](https://github.com/CocoaPods/CocoaPods/pull/1217)
* Ensure the resource script doesn’t fail due to the resources list file not
existing when trying to delete it.
[#1198](https://github.com/CocoaPods/CocoaPods/pull/1198)
* Fix handling of spaces in paths when compiling xcdatamodel(d) files.
[#1201](https://github.com/CocoaPods/CocoaPods/pull/1201)
## 0.22.2
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.22.1...0.22.2)
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.22.1...0.22.2)
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.8.0...0.8.1)
###### Enhancements
* The build settings of the Pods project and of its target have been updated to
be in line with the new defaults of the future versions of Xcode.
###### Bug fixes
* Specifications defining build setting with the `[*]` syntax are now properly
handled.
[#1171](https://github.com/CocoaPods/CocoaPods/issues/1171)
* The name of the files references are now properly set fixing a minor
regression introduced by CocoaPods 0.22.1 and matching more closely Xcode
behaviour.
* The validator now builds the Pods target instead of the first target actually
performing the validation.
* Build settings defined through the `xcconfig` attribute of a `podspec` are now
stripped of duplicate values when merged in an aggregate target.
[#1189](https://github.com/CocoaPods/CocoaPods/issues/1189)
## 0.22.1
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.22.0...0.22.1)
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.22.0...0.22.1)
###### Bug fixes
* Fixed a crash related to target dependencies and subspecs.
[#1168](https://github.com/CocoaPods/CocoaPods/issues/1168)
## 0.22.0
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.21.0...0.22.0)
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.21.0...0.22.0)
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.7.1...0.8.0)
###### Enhancements
* Added the `pod lib create` subcommand which allows to create a new Pod
adhering to the best practices. The template is still a bit primitive
and we encourage users to provide feedback by submitting patches and issues
to https://github.com/CocoaPods/CocoaPods.
[#850](https://github.com/CocoaPods/CocoaPods/issues/850)
* Added the `pod lib lint` subcommand which allows to lint the Pod stored
in the working directory (a pod spec in the root is needed). This subcommand
is equivalent to the deprecated `pod spec lint --local`.
[#850](https://github.com/CocoaPods/CocoaPods/issues/850)
* The dependencies of the targets of the Pods project are now made explicit.
[#1165](https://github.com/CocoaPods/CocoaPods/issues/1165)
* The size of the cache used for the git repos is now configurable. For more
details see
https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/config.rb#L7-L25
[#1159](https://github.com/CocoaPods/CocoaPods/issues/1159)
* The copy resources shell script now aborts if any error occurs.
[#1098](https://github.com/CocoaPods/CocoaPods/issues/1098)
* The output of shell script build phases no longer includes environment
variables to reduce noise.
[#1122](https://github.com/CocoaPods/CocoaPods/issues/1122)
* CocoaPods no longer sets the deprecated `ALWAYS_SEARCH_USER_PATHS` build
setting.
###### Bug fixes
* Pods whose head state changes now are correctly detected and reinstalled.
[#1160](https://github.com/CocoaPods/CocoaPods/issues/1160)
* Fixed the library reppresentation of the hooks which caused issues with the
`#copy_resources_script_path` method.
[#1157](https://github.com/CocoaPods/CocoaPods/issues/1157)
* Frameworks symlinks are not properly preserved by the copy resources script.
Thanks to Thomas Dohmke (ashtom) for the fix.
[#1063](https://github.com/CocoaPods/CocoaPods/issues/1063)
## 0.21.0
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.21.0.rc1...0.21.0)
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.21.0.rc1...0.21.0)
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.7.0...0.7.1)
###### Bug fixes
* Fixed a linter issue related to the dedicated targets change.
[#1130](https://github.com/CocoaPods/CocoaPods/issues/1130)
* Fixed xcconfig issues related to Pods including a dot in the name.
[#1152](https://github.com/CocoaPods/CocoaPods/issues/1152)
## 0.21.0.rc1
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.20.2...0.21.0.rc1)
......@@ -26,6 +163,7 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
* Fixed crash due to Podfile.lock containing multiple version requirements for
a Pod. [#1076](https://github.com/CocoaPods/CocoaPods/issues/1076)
* Fixed a build error due to the copy resources script using the same temporary
file for multiple targets.
[#1099](https://github.com/CocoaPods/CocoaPods/issues/1099)
......
......@@ -3,6 +3,7 @@
* **Search tickets before you file a new one.** Add to tickets if you have new information about the issue.
* **Only file tickets about the CocoaPods tool itself.** This includes [CocoaPods](https://github.com/CocoaPods/CocoaPods/issues),
[CocoaPods/Core](https://github.com/CocoaPods/Core/issues), and [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/issues).
If your question is regarding a library (to be) distributed through CocoaPods, refer to the [spec repo](https://github.com/CocoaPods/Specs).
If your question is “How do I []”, then please ask on [StackOverflow](http://stackoverflow.com/search?q=CocoaPods) or our [mailing-list](http://groups.google.com/group/cocoapods).
* **Keep tickets short but sweet.** Make sure you include all the context needed to solve the issue. Don't overdo it. Great tickets allow us to focus on solving problems instead of discussing them.
* **Take care of your ticket.** When you spend time to report a ticket with care we'll enjoy fixing it for you.
......
......@@ -18,6 +18,9 @@ group :development do
gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master'
gem "rake"
gem 'coveralls', :require => false, :git => 'https://github.com/lemurheavy/coveralls-ruby.git'
# Explicitly add this, otherwise it might sometimes be missing:
# https://github.com/lemurheavy/coveralls-ruby/blob/master/coveralls-ruby.gemspec#L23.
gem 'simplecov'
end
group :debugging do
......@@ -31,7 +34,7 @@ end
group :documentation do
gem 'yard'
gem 'redcarpet'
gem 'redcarpet', '< 3.0.0' # Not compatible with MRI 1.8.7
gem 'github-markup'
gem 'pygments.rb'
end
......
......@@ -7,20 +7,20 @@ GIT
GIT
remote: https://github.com/CocoaPods/Core.git
revision: 6e817dc96cdaf7b76d1ecb87e4676465b948f105
revision: b56cbd3145fbf97ff9589d70f7bc6f8b88c9a626
branch: master
specs:
cocoapods-core (0.21.0.rc1)
cocoapods-core (0.22.3)
activesupport (~> 3.2.13)
json (~> 1.8.0)
nap (~> 0.5.1)
GIT
remote: https://github.com/CocoaPods/Xcodeproj.git
revision: af8b52abcf0849d8e7f4326615c6f2dc3846aacb
revision: da60c7e415f150846d3120e9e3b7310d534446ff
branch: master
specs:
xcodeproj (0.7.0)
xcodeproj (0.8.1)
activesupport (~> 3.2.13)
colored (~> 1.2)
......@@ -41,7 +41,7 @@ GIT
GIT
remote: https://github.com/irrationalfab/PrettyBacon.git
revision: c42de649708149bbfb5fb5beefa65440855cf876
revision: 0da7e231bf597005aaa4efb4c2cd837336a6b42b
branch: master
specs:
prettybacon (0.0.1)
......@@ -61,39 +61,39 @@ GIT
PATH
remote: .
specs:
cocoapods (0.21.0.rc1)
cocoapods (0.22.3)
activesupport (~> 3.2.13)
claide (~> 0.3.2)
cocoapods-core (= 0.21.0.rc1)
cocoapods-core (= 0.22.3)
cocoapods-downloader (~> 0.1.1)
colored (~> 1.2)
escape (~> 0.0.4)
json (~> 1.8.0)
open4 (~> 1.3.0)
xcodeproj (~> 0.7.0)
xcodeproj (~> 0.8.1)
GEM
remote: http://rubygems.org/
specs:
activesupport (3.2.13)
i18n (= 0.6.1)
activesupport (3.2.14)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
awesome_print (1.1.0)
bacon (1.2.0)
coderay (1.0.9)
colored (1.2)
diffy (2.1.4)
diffy (3.0.1)
escape (0.0.4)
ffi (1.9.0)
github-markup (0.7.5)
i18n (0.6.1)
i18n (0.6.4)
json (1.8.0)
listen (1.1.6)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
rb-kqueue (>= 0.2)
metaclass (0.0.1)
method_source (0.8.1)
method_source (0.8.2)
mime-types (1.23)
mocha (0.14.0)
metaclass (~> 0.0.1)
......@@ -107,10 +107,10 @@ GEM
coderay (~> 1.0.5)
method_source (~> 0.8)
slop (~> 3.4)
pygments.rb (0.5.0)
pygments.rb (0.5.2)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
rake (10.0.4)
rake (10.1.0)
rb-fsevent (0.9.3)
rb-inotify (0.9.0)
ffi (>= 0.5.0)
......@@ -124,13 +124,13 @@ GEM
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
slop (3.4.5)
slop (3.4.6)
term-ansicolor (1.2.2)
tins (~> 0.8)
thor (0.18.1)
tins (0.8.2)
tins (0.8.3)
yajl-ruby (1.1.0)
yard (0.8.6.1)
yard (0.8.7)
PLATFORMS
ruby
......@@ -153,7 +153,8 @@ DEPENDENCIES
pygments.rb
rake
rb-fsevent
redcarpet
redcarpet (< 3.0.0)
ruby-prof
simplecov
xcodeproj!
yard
......@@ -56,25 +56,26 @@ namespace :gem do
if `git tag`.strip.split("\n").include?(gem_version)
$stderr.puts "[!] A tag for version `#{gem_version}' already exists. Change the version in lib/cocoapods/gem_version.rb"
silent_sh "open lib/cocoapods/gem_version.rb"
exit 1
end
puts "You are about to release `#{gem_version}', is that correct? [y/n]"
exit if $stdin.gets.strip.downcase != 'y'
diff_lines = `git diff --name-only`.strip.split("\n")
diff_lines.delete('CHANGELOG.md')
if diff_lines.size == 0
$stderr.puts "[!] Change the version number yourself in lib/cocoapods/gem_version.rb"
exit 1
end
diff_lines.delete('Gemfile.lock')
diff_lines.delete('CHANGELOG.md')
if diff_lines != ['lib/cocoapods/gem_version.rb']
$stderr.puts "[!] Only change the version number in a release commit!"
exit 1
end
puts "You are about to release `#{gem_version}', is that correct? [y/n]"
exit if $stdin.gets.strip.downcase != 'y'
end
require 'date'
......@@ -181,7 +182,7 @@ namespace :spec do
desc "Run the integration spec"
task :integration => :unpack_fixture_tarballs do
sh "bundle exec bacon spec/integration_2.rb"
sh "bundle exec bacon spec/integration.rb"
end
# Default task
......@@ -196,8 +197,8 @@ namespace :spec do
title 'Running the specs'
sh "bundle exec bacon #{specs('**')}"
title 'Running Integration 2 tests'
sh "bundle exec bacon spec/integration_2.rb"
title 'Running Integration tests'
sh "bundle exec bacon spec/integration.rb"
title 'Running examples'
Rake::Task['examples:build'].invoke
......@@ -218,8 +219,8 @@ namespace :spec do
sh "./bin/pod setup"
end
title 'Running Integration 2 tests'
sh "bundle exec bacon spec/integration_2.rb"
title 'Running Integration tests'
sh "bundle exec bacon spec/integration.rb"
title 'Running examples'
Rake::Task['examples:build'].invoke
......@@ -258,10 +259,10 @@ namespace :spec do
#--------------------------------------#
desc "Rebuild integration take 2 after folders"
desc "Rebuilds integration fixtures"
task :rebuild_integration_fixtures do
title 'Running Integration 2 tests'
`bundle exec bacon spec/integration_2.rb`
title 'Running Integration tests'
`bundle exec bacon spec/integration.rb`
title 'Storing fixtures'
# Copy the files to the files produced by the specs to the after folders
......@@ -322,11 +323,11 @@ namespace :examples do
desc "Build all examples"
task :build do
execute_command "rm -rf ~/Library/Developer/Shared/Documentation/DocSets/org.cocoapods.*"
examples.entries.each do |example|
puts "Building example: #{example}"
Dir.chdir(example.to_s) do
execute_command "rm -rf Pods DerivedData"
# WARNING: This appeart to use sytem gems instead of the bundle ones.
execute_command "#{'../../bin/' unless ENV['FROM_GEM']}sandbox-pod install --verbose --no-repo-update"
command = "xcodebuild -workspace '#{example.basename}.xcworkspace' -scheme '#{example.basename}'"
if (example + 'Podfile').read.include?('platform :ios')
......@@ -335,7 +336,7 @@ namespace :examples do
major_version = xcode_version.split('.').first.to_i
destination_flag_supported = major_version > 4
if destination_flag_supported
command << " -destination 'platform=iOS Simulator,name=iPhone'"
command << " -destination 'platform=iOS Simulator,name=iPhone Retina (4-inch)'"
else
command << " -sdk "
command << Dir.glob("#{`xcode-select -print-path`.chomp}/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator*.sdk").last
......
......@@ -30,7 +30,7 @@ s.files = Dir["lib/**/*.rb"] + %w{ bin/pod bin/sandbox-pod README.md LICENSE CHA
s.add_runtime_dependency 'cocoapods-core', "= #{Pod::VERSION}"
s.add_runtime_dependency 'claide', '~> 0.3.2'
s.add_runtime_dependency 'cocoapods-downloader', '~> 0.1.1'
s.add_runtime_dependency 'xcodeproj', '~> 0.7.0'
s.add_runtime_dependency 'xcodeproj', '~> 0.8.1'
s.add_runtime_dependency 'colored', '~> 1.2'
s.add_runtime_dependency 'escape', '~> 0.0.4'
......@@ -49,11 +49,16 @@ s.files = Dir["lib/**/*.rb"] + %w{ bin/pod bin/sandbox-pod README.md LICENSE CHA
changelog_path = File.expand_path('../CHANGELOG.md', __FILE__)
if File.exists?(changelog_path)
title_token = '## '
current_verison_title = title_token + Pod::VERSION.to_s
full_changelog = File.open(changelog_path, "r:UTF-8") { |f| f.read }
current_version_index = full_changelog.index(/^#{current_verison_title}/)
previous_version_index = full_changelog.index(/^#{title_token}/, current_version_index + title_token.length)
relevant = full_changelog[current_version_index..previous_version_index-1]
s.post_install_message = "\nCHANGELOG:\n\n" + relevant + "\n"
current_verison_title = title_token + Pod::VERSION.to_s
text = File.open(changelog_path, "r:UTF-8") { |f| f.read }
lines = text.split("\n")
current_version_index = lines.find_index { |line| line =~ (/^#{current_verison_title}/) }
previous_version_lines = lines[(current_version_index+1)...-1]
previous_version_index = current_version_index + previous_version_lines.find_index { |line| line =~ (/^#{title_token}/) && !line.include?('rc') }
relevant = lines[current_version_index..previous_version_index]
s.post_install_message = "\nCHANGELOG:\n\n" + relevant.join("\n") + "\n"
end
end
......@@ -25,9 +25,8 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
0BBDA6CDB42C48EFB1B980BC /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
242C9E9348A44970B9ECDCF5 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
E54FF38417712C8100418B5B /* Pods.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = file; name = Pods.xcconfig; path = Pods/Generated/Pods.xcconfig; sourceTree = "<group>"; };
391552C2BD5947DF9FEB5975 /* Pods.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; };
F8D25D171396A9D300CF3BD6 /* placeholder-stamp.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder-stamp.png"; path = "Images/placeholder-stamp.png"; sourceTree = SOURCE_ROOT; };
F8D25D181396A9D300CF3BD6 /* placeholder-stamp@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder-stamp@2x.png"; path = "Images/placeholder-stamp@2x.png"; sourceTree = SOURCE_ROOT; };
F8D25D1B1396A9DE00CF3BD6 /* AFGowallaAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFGowallaAPIClient.h; path = Classes/AFGowallaAPIClient.h; sourceTree = "<group>"; };
......@@ -108,7 +107,7 @@
F8E469ED1395812A00DB05C8 /* Images */,
F8E469631395739D00DB05C8 /* Frameworks */,
F8E469611395739C00DB05C8 /* Products */,
E54FF38417712C8100418B5B /* Pods.xcconfig */,
391552C2BD5947DF9FEB5975 /* Pods.xcconfig */,
);
sourceTree = "<group>";
};
......@@ -130,7 +129,6 @@
F8E469661395739D00DB05C8 /* Foundation.framework */,
F8E469681395739D00DB05C8 /* CoreGraphics.framework */,
242C9E9348A44970B9ECDCF5 /* libPods.a */,
0BBDA6CDB42C48EFB1B980BC /* libPods.a */,
);
name = Frameworks;
sourceTree = "<group>";
......@@ -188,6 +186,7 @@
F8E4695C1395739C00DB05C8 /* Sources */,
F8E4695D1395739C00DB05C8 /* Frameworks */,
F8E4695E1395739C00DB05C8 /* Resources */,
DD5E268688D543178A339BEB /* Copy Pods Resources */,
8A3A8D61FF1041A3B3AA9C55 /* Copy Pods Resources */,
);
buildRules = (
......@@ -250,7 +249,21 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Generated/Pods-resources.sh\"\n";
shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n";
};
DD5E268688D543178A339BEB /* Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n";
};
/* End PBXShellScriptBuildPhase section */
......@@ -273,7 +286,6 @@
/* Begin XCBuildConfiguration section */
F8E4697F1395739D00DB05C8 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E54FF38417712C8100418B5B /* Pods.xcconfig */;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
......@@ -291,7 +303,6 @@
};
F8E469801395739D00DB05C8 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E54FF38417712C8100418B5B /* Pods.xcconfig */;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
......@@ -307,6 +318,7 @@
};
F8E469821395739D00DB05C8 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 391552C2BD5947DF9FEB5975 /* Pods.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
......@@ -327,6 +339,7 @@
};
F8E469831395739D00DB05C8 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 391552C2BD5947DF9FEB5975 /* Pods.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
......
......@@ -18,25 +18,6 @@ module Pod
end
end
# @return [Pathname] The directory where CocoaPods caches the downloads.
#
# @todo The {Installer::PodSourceInstaller} and the #{ExternalSources}
# classes build and configure the downloader from scratch.
#
CACHE_ROOT = Pathname.new(File.join(ENV['HOME'], 'Library/Caches/CocoaPods'))
CACHE_ROOT.mkpath unless CACHE_ROOT.exist?
# @return [Fixnum] The maximum size for the cache expressed in Mb.
#
# @todo The {Installer::PodSourceInstaller} and the #{ExternalSources}
# classes build and configure the downloader from scratch.
#
MAX_CACHE_SIZE = 500
# @return [Pathname] The file to use a cache of the statistics provider.
#
STATISTICS_CACHE_FILE = CACHE_ROOT + 'statistics.yml'
autoload :Command, 'cocoapods/command'
autoload :Executable, 'cocoapods/executable'
autoload :ExternalSources, 'cocoapods/external_sources'
......
......@@ -8,17 +8,18 @@ module Pod
class Command < CLAide::Command
require 'cocoapods/command/help'
require 'cocoapods/command/inter_process_communication'
require 'cocoapods/command/lib'
require 'cocoapods/command/list'
require 'cocoapods/command/outdated'
require 'cocoapods/command/podfile_info'
require 'cocoapods/command/project'
require 'cocoapods/command/push'
require 'cocoapods/command/repo'
require 'cocoapods/command/search'
require 'cocoapods/command/setup'
require 'cocoapods/command/spec'
require 'cocoapods/command/help'
require 'cocoapods/command/inter_process_communication'
require 'cocoapods/command/podfile_info'
self.abstract_command = true
self.default_subcommand = 'install'
......
module Pod
class Command
class Lib < Command
self.abstract_command = true
self.summary = 'Develop pods'
#-----------------------------------------------------------------------#
class Create < Lib
self.summary = 'Creates a new Pod'
self.description = <<-DESC
Creates a new Pod with the given name from the template in the working directory.
DESC
self.arguments = '[NAME]'
def initialize(argv)
@name = argv.shift_argument
super
end
def validate!
super
help! "A name for the Pod is required." unless @name
end
def run
clone_template
configure_template
print_info
end
private
#----------------------------------------#
# !@group Private helpers
extend Executable
executable :git
executable :ruby
TEMPLATE_REPO = "https://github.com/CocoaPods/pod-template.git"
TEMPLATE_INFO_URL = "https://github.com/CocoaPods/pod-template"
# Clones the template from the remote in the working directory using
# the name of the Pod.
#
# @return [void]
#
def clone_template
UI.section("Creating `#{@name}` Pod") do
git!"clone '#{TEMPLATE_REPO}' #{@name}"
end
end
# Runs the template configuration utilities.
#
# @return [void]
#
def configure_template
UI.section("Configuring template") do
Dir.chdir(@name) do
ruby! "_CONFIGURE.rb #{@name}"
end
end
end
# Runs the template configuration utilities.
#
# @return [void]
#
def print_info
UI.puts "\nTo learn more about the template see `#{TEMPLATE_INFO_URL}`."
end
end
#-----------------------------------------------------------------------#
class Lint < Lib
self.summary = 'Validates a Pod'
self.description = <<-DESC
Validates the Pod using the files in the working directory.
DESC
def self.options
[ ["--quick", "Lint skips checks that would require to download and build the spec"],
["--only-errors", "Lint validates even if warnings are present"],
["--no-clean", "Lint leaves the build directory intact for inspection"] ].concat(super)
end
def initialize(argv)
@quick = argv.flag?('quick')
@only_errors = argv.flag?('only-errors')
@clean = argv.flag?('clean', true)
super
end
def validate!
super
end
def run
UI.puts
validator = Validator.new(podspec_to_lint)
validator.local = true
validator.quick = @quick
validator.no_clean = !@clean
validator.only_errors = @only_errors
validator.validate
if validator.validated?
UI.puts "#{validator.spec.name} passed validation.".green
else
raise Informative, "#{validator.spec.name} did not pass validation."
end
unless @clean
UI.puts "Pods project available at `#{validator.validation_dir}/Pods/Pods.xcodeproj` for inspection."
UI.puts
end
end
private
#----------------------------------------#
# !@group Private helpers
# @return [Pathname] The path of the podspec found in the current
# working directory.
#
# @raise If no podspec is found.
# @raise If multiple podspecs are found.
#
def podspec_to_lint
podspecs = Pathname.glob(Pathname.pwd + '*.podspec{.yaml,}')
raise Informative, "Unable to find a podspec in the working directory" if podspecs.count.zero?
raise Informative, "Multiple podspecs detected in the working directory" if podspecs.count > 1
podspecs.first
end
end
#-----------------------------------------------------------------------#
end
end
end
......@@ -48,7 +48,7 @@ module Pod
dates, groups = {}, {}
days.each {|d| dates[d] = Time.now - 60 * 60 * 24 * d}
sets = SourcesManager.all_sets
statistics_provider = Specification::Set::Statistics.new(STATISTICS_CACHE_FILE)
statistics_provider = Config.instance.spec_statistics_provider
creation_dates = statistics_provider.creation_dates(sets)
sets.each do |set|
......
......@@ -5,7 +5,7 @@ module Pod
self.summary = 'Shows information on installed Pods.'
self.description = <<-DESC
Shows information on installed Pods in current Project.
Shows information on installed Pods in current Project.
If optional `PODFILE_PATH` provided, the info will be shown for
that specific Podfile
DESC
......@@ -21,13 +21,14 @@ module Pod
def initialize(argv)
@info_all = argv.flag?('all')
@info_in_md = argv.flag?('md')
@info_license = argv.flag?('license')
@podfile_path = argv.shift_argument
super
end
def run
use_podfile = (@podfile_path || !config.lockfile)
if !use_podfile
UI.puts "Using lockfile" if config.verbose?
verify_lockfile_exists!
......@@ -57,7 +58,7 @@ module Pod
pods.collect! {|pod| (pod.is_a?(Hash)) ? pod.keys.first : pod}
end
def pods_info_hash(pods, keys=[:name, :homepage, :summary])
def pods_info_hash(pods, keys=[:name, :homepage, :summary, :license])
pods_info = []
pods.each do |pod|
spec = (Pod::SourcesManager.search_by_name(pod).first rescue nil)
......@@ -66,26 +67,27 @@ module Pod
keys.each { |k| info[k] = spec.specification.send(k) }
pods_info << info
else
end
end
pods_info
end
def pods_info(pods, in_md=false)
pods = pods_info_hash(pods, [:name, :homepage, :summary])
pods = pods_info_hash(pods, [:name, :homepage, :summary, :license])
pods.each do |pod|
pods.each do |pod|
if in_md
UI.puts "* [#{pod[:name]}](#{pod[:homepage]}) - #{pod[:summary]}"
UI.puts "* [#{pod[:name]}](#{pod[:homepage]}) [#{pod[:license][:type]}] - #{pod[:summary]}"
else
UI.puts "- #{pod[:name]} - #{pod[:summary]}"
UI.puts "- #{pod[:name]} [#{pod[:license][:type]}]".green
UI.puts " #{pod[:summary]}\n\n"
end
end
end
end
end
end
\ No newline at end of file
end
......@@ -8,7 +8,7 @@ module Pod
self.description = <<-DESC
Validates NAME.podspec or `*.podspec' in the current working dir, creates
a directory and version folder for the pod in the local copy of
a directory and version folder for the pod in the local copy of
REPO (~/.cocoapods/[REPO]), copies the podspec file into the version directory,
and finally it pushes REPO to its remote.
DESC
......@@ -79,7 +79,7 @@ module Pod
#
# @todo Add specs for staged and unstaged files.
#
# @todo Gracefully handle the case where source is not under git
# @todo Gracefully handle the case where source is not under git
# source control.
#
# @return [void]
......@@ -117,13 +117,18 @@ module Pod
else
message = "[Add] #{spec}"
end
UI.puts " - #{message}"
FileUtils.mkdir_p(output_path)
FileUtils.cp(spec_file, output_path)
Dir.chdir(repo_dir) do
git!("add #{spec.name}")
git!("commit --no-verify -m '#{message}'")
# only commit if modified
if git!("status --porcelain 2>&1") =~ /#{spec.name}/
UI.puts " - #{message}"
git!("add #{spec.name}")
git!("commit --no-verify -m '#{message}'")
else
UI.puts " - [No change] #{spec}"
end
end
end
end
......
module Pod
class Command
class Search < Command
self.summary = 'Search pods'
self.summary = 'Searches for pods'
self.description = <<-DESC
Searches for pods, ignoring case, whose name matches `QUERY'. If the
......@@ -43,7 +43,7 @@ module Pod
sets.reject!{ |set| !set.specification.available_platforms.map(&:name).include?(:osx) }
end
statistics_provider = Specification::Set::Statistics.new(STATISTICS_CACHE_FILE)
statistics_provider = Config.instance.spec_statistics_provider
sets.each do |set|
begin
if @stats
......
This diff is collapsed.
......@@ -17,11 +17,14 @@ module Pod
:verbose => false,
:silent => false,
:skip_repo_update => false,
:aggressive_cache => false,
:clean => true,
:integrate_targets => true,
:new_version_message => true,
:cache_root => Pathname.new(File.join(ENV['HOME'], 'Library/Caches/CocoaPods')),
:max_cache_size => 500,
:aggressive_cache => false,
}
public
......@@ -68,6 +71,26 @@ module Pod
attr_accessor :skip_repo_update
alias_method :skip_repo_update?, :skip_repo_update
public
#-------------------------------------------------------------------------#
# @!group Cache
# @return [Fixnum] The maximum size for the cache expressed in Mb.
#
attr_accessor :max_cache_size
# @return [Pathname] The directory where CocoaPods should cache remote data
# and other expensive to compute information.
#
attr_accessor :cache_root
def cache_root
@cache_root.mkpath unless @cache_root.exist?
@cache_root
end
# Allows to set whether the downloader should use more aggressive caching
# options.
#
......@@ -80,7 +103,7 @@ module Pod
# options.
#
def aggressive_cache?
@aggressive_cache || (ENV['CP_AGGRESSIVE_CACHE'] != 'FALSE')
@aggressive_cache || (ENV['CP_AGGRESSIVE_CACHE'] == 'TRUE')
end
public
......@@ -89,10 +112,10 @@ module Pod
# @!group Initialization
def initialize
def initialize(use_user_settings = true)
configure_with(DEFAULTS)
if user_settings_file.exist?
if use_user_settings && user_settings_file.exist?
require 'yaml'
user_settings = YAML.load_file(user_settings_file)
configure_with(user_settings)
......@@ -193,6 +216,42 @@ module Pod
@lockfile_path ||= installation_root + 'Podfile.lock'
end
# @return [Pathname] The file to use a cache of the statistics provider.
#
def statistics_cache_file
cache_root + 'statistics.yml'
end
# @return [Pathname] The file to use to cache the search data.
#
def search_index_file
cache_root + 'search_index.yaml'
end
public
#-------------------------------------------------------------------------#
# @!group Dependency Injection
# @return [Downloader] The downloader to use for the retrieving remote
# source.
#
def downloader(target_path, options)
downloader = Downloader.for_target(target_path, options)
downloader.cache_root = cache_root
downloader.max_cache_size = max_cache_size
downloader.aggressive_cache = aggressive_cache?
downloader
end
# @return [Specification::Set::Statistics] The statistic provider to use
# for specifications.
#
def spec_statistics_provider
Specification::Set::Statistics.new(statistics_cache_file)
end
private
#-------------------------------------------------------------------------#
......
......@@ -136,10 +136,7 @@ module Pod
UI.titled_section("Pre-downloading: `#{name}` #{description}", { :verbose_prefix => "-> " }) do
target = sandbox.pod_dir(name)
target.rmtree if target.exist?
downloader = Downloader.for_target(target, params)
downloader.cache_root = CACHE_ROOT.to_s
downloader.max_cache_size = MAX_CACHE_SIZE
downloader.aggressive_cache = false
downloader = Config.instance.downloader(target, params)
downloader.download
store_podspec(sandbox, target + "#{name}.podspec")
sandbox.store_pre_downloaded_pod(name)
......
module Pod
# The version of the cocoapods command line tool.
#
VERSION = '0.21.0.rc1' unless defined? Pod::VERSION
VERSION = '0.22.3' unless defined? Pod::VERSION
end
......@@ -79,6 +79,7 @@ module Pod
INSTALL_RESOURCES_FUCTION = <<EOS
#!/bin/sh
set -e
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
......@@ -95,12 +96,14 @@ install_resource()
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
;;
*.framework)
echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -rp "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "cp -fpR ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
cp -fpR "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodeld)
echo "xcrun momc ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd"
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd"
*.xcdatamodel | *.xcdatamodeld)
echo "xcrun momc \\"${PODS_ROOT}/$1\\" \\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/$1.momd\\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/$1.momd"
;;
*)
echo "${PODS_ROOT}/$1"
......@@ -114,7 +117,7 @@ EOS
RSYNC_CALL = <<EOS
rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rm "$RESOURCES_TO_COPY"
rm -f "$RESOURCES_TO_COPY"
EOS
end
......
......@@ -10,13 +10,17 @@ module Pod
# @return [Target] the target represented by this xcconfig.
#
attr_reader :target
attr_reader :sandbox
# @param [Target] target @see target
#
def initialize(target)
@target = target
@sandbox = target.sandbox
end
# @return [Sandbox] the sandbox of this target.
#
def sandbox
target.sandbox
end
# @return [Xcodeproj::Config] The generated xcconfig.
......
......@@ -15,28 +15,25 @@ module Pod
# @return [Xcodeproj::Config]
#
def generate
config = {
'ALWAYS_SEARCH_USER_PATHS' => 'YES',
'OTHER_LDFLAGS' => default_ld_flags,
'HEADER_SEARCH_PATHS' => quote(sandbox.public_headers.search_paths),
'PODS_ROOT' => target.relative_pods_root,
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
}
@xcconfig = Xcodeproj::Config.new({
'OTHER_LDFLAGS' => default_ld_flags,
'HEADER_SEARCH_PATHS' => quote(sandbox.public_headers.search_paths),
'PODS_ROOT' => target.relative_pods_root,
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
})
target.pod_targets.each do |pod_target|
xcconfig = Xcodeproj::Config.new
pod_target.spec_consumers.each do |consumer|
add_spec_build_settings_to_xcconfig(consumer, xcconfig)
end
xcconfig.to_hash.each do |k, v|
prefixed_key = pod_target.xcconfig_prefix + k
config[k] = "#{config[k]} ${#{prefixed_key}}"
add_spec_build_settings_to_xcconfig(consumer, @xcconfig)
end
end
@xcconfig = Xcodeproj::Config.new(config)
@xcconfig.includes = target.pod_targets.map(&:name)
# TODO Need to decide how we are going to ensure settings like these
# are always excluded from the user's project.
#
# See https://github.com/CocoaPods/CocoaPods/issues/1216
@xcconfig.attributes.delete('USE_HEADERMAP')
@xcconfig
end
......
......@@ -9,13 +9,25 @@ module Pod
#
class PrivatePodXCConfig < XCConfig
# @return [Xcodeproj::Config] The public xcconfig which this one will
# use.
#
attr_reader :public_xcconfig
# @param [Target] target @see target
# @param [Xcodeproj::Config] public_xcconfig @see public_xcconfig
#
def initialize(target, public_xcconfig)
super(target)
@public_xcconfig = public_xcconfig
end
# Generates the xcconfig.
#
# @return [Xcodeproj::Config]
#
def generate
config = {
'ALWAYS_SEARCH_USER_PATHS' => 'YES',
'OTHER_LDFLAGS' => default_ld_flags,
'PODS_ROOT' => '${SRCROOT}',
'HEADER_SEARCH_PATHS' => quote(target.build_headers.search_paths) + ' ' + quote(sandbox.public_headers.search_paths),
......@@ -23,19 +35,57 @@ module Pod
# 'USE_HEADERMAP' => 'NO'
}
xcconfig = Xcodeproj::Config.new
target.spec_consumers.each do |consumer|
add_spec_build_settings_to_xcconfig(consumer, xcconfig)
end
xcconfig_hash = add_xcconfig_namespaced_keys(public_xcconfig.to_hash, config, target.xcconfig_prefix)
@xcconfig = Xcodeproj::Config.new(xcconfig_hash)
@xcconfig.includes = [target.name]
@xcconfig
end
private
#-----------------------------------------------------------------------#
xcconfig.to_hash.each do |k, v|
prefixed_key = target.xcconfig_prefix + k
config[k] = "#{config[k]} ${#{prefixed_key}}"
# !@group Private Helpers
# Returns the hash representation of an xcconfig which inherit from the
# namespaced keys of a given one.
#
# @param [Hash] source_config
# The xcconfig whose keys need to be inherited.
#
# @param [Hash] destination_config
# The config which should inherit the source config keys.
#
# @return [Hash] The inheriting xcconfig.
#
def add_xcconfig_namespaced_keys(source_config, destination_config, prefix)
result = destination_config.dup
source_config.each do |key, value|
prefixed_key = prefix + conditional_less_key(key)
current_value = destination_config[key]
if current_value
result[key] = "#{current_value} ${#{prefixed_key}}"
else
result[key] = "${#{prefixed_key}}"
end
end
result
end
@xcconfig = Xcodeproj::Config.new(config)
@xcconfig.includes = [target.name]
@xcconfig
# Strips the [*]-syntax from the given xcconfig key.
#
# @param [String] key
# The key to strip.
#
# @return [String] The stripped key.
#
def conditional_less_key(key)
brackets_index = key.index('[')
if brackets_index
key[0...brackets_index]
else
key
end
end
#-----------------------------------------------------------------------#
......
......@@ -59,8 +59,8 @@ module Pod
#
def specs_by_lib
result = {}
installer.pod_targets.each do |lib|
result[installer.library_rep(lib)] = lib.specs
installer.aggregate_targets.each do |aggregate_target|
result[installer.library_rep(aggregate_target)] = aggregate_target.specs
end
result
end
......
......@@ -83,6 +83,7 @@ module Pod
def initialize(sandbox, library)
@sandbox = sandbox
@library = library
raise "[BUG]" unless library.is_a?(AggregateTarget)
end
#-----------------------------------------------------------------------#
......
......@@ -120,6 +120,7 @@ module Pod
prepare_pods_project
install_file_references
install_libraries
set_target_dependencies
link_aggregate_target
run_post_install_hooks
write_pod_project
......@@ -304,6 +305,7 @@ module Pod
@pods_project.build_configurations.each do |build_configuration|
build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = osx_deployment_target.to_s if osx_deployment_target
build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_deployment_target.to_s if ios_deployment_target
build_configuration.build_settings['STRIP_INSTALLED_PRODUCT'] = 'NO'
end
end
end
......@@ -341,6 +343,42 @@ module Pod
end
end
def set_target_dependencies
aggregate_targets.each do |aggregate_target|
aggregate_target.pod_targets.each do |pod_target|
add_dependency(aggregate_target, pod_target)
pod_target.dependencies.each do |dep|
unless dep == pod_target.pod_name
pod_dependency_target = aggregate_target.pod_targets.find { |target| target.pod_name == dep }
# TODO remove me
unless pod_dependency_target
puts "[BUG] DEP: #{dep}"
end
add_dependency(pod_target, pod_dependency_target)
end
end
end
end
end
# TODO: tmp - move
#
def add_dependency(dependent_target, dependency_target)
container_proxy = pods_project.new(Xcodeproj::Project::PBXContainerItemProxy)
container_proxy.container_portal = pods_project.root_object.uuid
container_proxy.proxy_type = '1'
container_proxy.remote_global_id_string = dependency_target.target.uuid
container_proxy.remote_info = dependency_target.target.name
dependency = pods_project.new(Xcodeproj::Project::PBXTargetDependency)
dependency.target = dependency_target.target
dependency.targetProxy = container_proxy
dependent_target.target.dependencies << dependency
end
# Links the aggregate targets with all the dependent libraries.
#
# @note This is run in the integration step to ensure that targets
......@@ -424,7 +462,7 @@ module Pod
executed = false
libraries_using_spec(spec).each do |lib|
lib_representation = library_rep(lib)
executed |= run_spec_pre_install_hook(spec, lib_representation)
executed ||= run_spec_pre_install_hook(spec, lib_representation)
end
UI.message "- #{spec.name}" if executed
end
......@@ -483,7 +521,7 @@ module Pod
executed = false
libraries_using_spec(spec).each do |lib|
lib_representation = library_rep(lib)
executed |= run_spec_post_install_hook(spec, lib_representation)
executed ||= run_spec_post_install_hook(spec, lib_representation)
end
UI.message "- #{spec.name}" if executed
end
......@@ -556,14 +594,14 @@ module Pod
# @return [LibraryRepresentation]
#
def library_rep(library)
Hooks::LibraryRepresentation.new(sandbox, library)
def library_rep(aggregate_target)
Hooks::LibraryRepresentation.new(sandbox, aggregate_target)
end
# @return [Array<LibraryRepresentation>]
#
def library_reps
@library_reps ||= pod_targets.map { |lib| library_rep(lib) }
@library_reps ||= aggregate_targets.map { |lib| library_rep(lib) }
end
# @return [Array<PodRepresentation>]
......@@ -580,7 +618,9 @@ module Pod
# @return [Array<Library>] The library.
#
def libraries_using_spec(spec)
pod_targets.select { |pod_target| pod_target.specs.include?(spec) }
aggregate_targets.select do |aggregate_target|
aggregate_target.pod_targets.any? { |pod_target| pod_target.specs.include?(spec) }
end
end
# @return [Array<Library>] The libraries generated by the installation
......
......@@ -150,6 +150,7 @@ module Pod
return true if resolved_spec_names(pod) != sandbox_spec_names(pod)
return true if sandbox.predownloaded?(pod)
return true if folder_empty?(pod)
return true if sandbox.head_pod?(pod) != sandbox_head_version?(pod)
if update_mode
return true if sandbox.head_pod?(pod)
end
......@@ -235,6 +236,13 @@ module Pod
sandbox_manifest.checksum(pod)
end
# @return [Bool] Wether the Pod is installed in the sandbox is in head
# mode.
#
def sandbox_head_version?(pod)
sandbox_version(pod).head? == true
end
#--------------------------------------#
def folder_exist?(pod)
......
......@@ -125,12 +125,7 @@ module Pod
# source.
#
def downloader
return @downloader if @downloader
@downloader = Downloader.for_target(root, root_spec.source.dup)
@downloader.cache_root = CACHE_ROOT.to_s
@downloader.max_cache_size = MAX_CACHE_SIZE
@downloader.aggressive_cache = aggressive_cache?
@downloader
@downloader ||= Config.instance.downloader(root, root_spec.source.dup)
end
#-----------------------------------------------------------------------#
......
......@@ -29,9 +29,6 @@ module Pod
# Generates the contents of the xcconfig file and saves it to disk.
#
# @note The `ALWAYS_SEARCH_USER_PATHS` flag is enabled to support
# libraries like `EmbedReader`.
#
# @return [void]
#
def create_xcconfig_file
......
......@@ -51,23 +51,20 @@ module Pod
# Generates the contents of the xcconfig file and saves it to disk.
#
# @note The `ALWAYS_SEARCH_USER_PATHS` flag is enabled to support
# libraries like `EmbedReader`.
#
# @return [void]
#
def create_xcconfig_file
path = library.xcconfig_path
public_gen = Generator::PublicPodXCConfig.new(library)
UI.message "- Generating public xcconfig file at #{UI.path(path)}" do
gen = Generator::PublicPodXCConfig.new(library)
gen.save_as(path)
public_gen.save_as(path)
add_file_to_support_group(path)
end
path = library.xcconfig_private_path
private_gen = Generator::PrivatePodXCConfig.new(library, public_gen.xcconfig)
UI.message "- Generating private xcconfig file at #{UI.path(path)}" do
gen = Generator::PrivatePodXCConfig.new(library)
gen.save_as(path)
private_gen.save_as(path)
xcconfig_file_ref = add_file_to_support_group(path)
target.build_configurations.each do |c|
......
......@@ -149,6 +149,7 @@ module Pod
native_target.new_shell_script_build_phase(phase_name)
path = target.copy_resources_script_relative_path
phase.shell_script = %{"#{path}"\n}
phase.show_env_vars_in_log = '0'
end
end
......@@ -177,6 +178,7 @@ module Pod
exit 1
fi
EOS
phase.show_env_vars_in_log = '0'
end
end
......
......@@ -187,8 +187,9 @@ module Pod
#
def add_podfile(podfile_path)
podfile_path = Pathname.new(podfile_path)
podfile_ref = new_file(relativize(podfile_path))
podfile_ref = new_file(relativize(podfile_path))
podfile_ref.xc_language_specification_identifier = 'xcode.lang.ruby'
podfile_ref.last_known_file_type = 'text'
podfile_ref
end
......
......@@ -120,7 +120,7 @@ module Pod
# @return [Pathname] The path where the search index should be stored.
#
def search_index_path
CACHE_ROOT + 'search_index.yaml'
Config.instance.search_index_file
end
public
......
......@@ -38,7 +38,7 @@ module Pod
# @return [String] A string suitable for debugging.
#
def inspect
"<#{self.class} name=#{name} platform=#{platform}>"
"<#{self.class} name=#{name} >"
end
#-------------------------------------------------------------------------#
......
......@@ -56,9 +56,16 @@ module Pod
#
attr_accessor :pod_targets
# @return [Array<SpecConsumer>]
# @return [Array<Specification>] The specifications used by this aggregate target.
#
def specs
pod_targets.map(&:specs).flatten
end
# @return [Array<Specification::Consumer>] The consumers of the Pod.
#
def spec_consumers
pod_targets.map(&:specs).flatten.map { |spec| spec.consumer(platform) }
specs.map { |spec| spec.consumer(platform) }
end
# @return [Pathname] The absolute path of acknowledgements file.
......
......@@ -43,11 +43,26 @@ module Pod
specs.map { |spec| spec.consumer(platform) }
end
# @return [Specification] the root specification for the target.
# @return [Specification] The root specification for the target.
#
def root_spec
specs.first.root
end
# @return [String] The name of the Pod that this target refers to.
#
def pod_name
root_spec.name
end
# @return [Array<String>] The names of the Pods on which this target
# depends.
#
def dependencies
specs.map do |spec|
spec.consumer(platform).dependencies.map { |dep| Specification.root_name(dep.name) }
end.flatten
end
end
end
......@@ -208,8 +208,11 @@ module Pod
installer = Installer.new(sandbox, podfile)
installer.install!
file_accessors = installer.aggregate_targets.first.pod_targets.first.file_accessors
@file_accessor = file_accessors.find { |accessor| accessor.spec == spec }
file_accessors = installer.aggregate_targets.map do |target|
target.pod_targets.map(&:file_accessors)
end.flatten
@file_accessor = file_accessors.find { |accessor| accessor.spec.root.name == spec.root.name }
config.silent
end
......@@ -305,7 +308,7 @@ module Pod
podfile = Pod::Podfile.new do
platform(platform_name, deployment_target)
if (local)
pod name, :local => podspec.dirname.to_s
pod name, :path => podspec.dirname.to_s
else
pod name, :podspec => podspec.to_s
end
......@@ -341,7 +344,7 @@ module Pod
# returns its output (bot STDOUT and STDERR).
#
def xcodebuild
`xcodebuild clean build 2>&1`
`xcodebuild clean build -target Pods 2>&1`
end
#-------------------------------------------------------------------------#
......
......@@ -53,11 +53,15 @@ module Pod
end
# prepare the spec
spec = (fixture('spec-repos') + 'master/JSONKit/1.4/JSONKit.podspec').read
spec = (fixture('spec-repos') + 'test_repo/JSONKit/1.4/JSONKit.podspec').read
spec_fix = spec.gsub(/https:\/\/github\.com\/johnezang\/JSONKit\.git/, fixture('integration/JSONKit').to_s)
spec_add = spec.gsub(/'JSONKit'/, "'PushTest'")
spec_clean = (fixture('spec-repos') + 'test_repo/BananaLib/1.0/BananaLib.podspec').read
File.open(temporary_directory + 'JSONKit.podspec', 'w') {|f| f.write(spec_fix) }
File.open(temporary_directory + 'PushTest.podspec', 'w') {|f| f.write(spec_add) }
File.open(temporary_directory + 'BananaLib.podspec', 'w') {|f| f.write(spec_clean) }
end
it "refuses to push if the repo is not clean" do
......@@ -79,6 +83,7 @@ module Pod
Dir.chdir(temporary_directory) { cmd.run }
Pod::UI.output.should.include('[Add] PushTest (1.4)')
Pod::UI.output.should.include('[Fix] JSONKit (1.4)')
Pod::UI.output.should.include('[No change] BananaLib (1.0)')
Dir.chdir(@upstream) { `git checkout master -q` }
(@upstream + 'PushTest/1.4/PushTest.podspec').read.should.include('PushTest')
end
......
# ------------------------------------ #
# CocoaPods Integration tests take 2 #
# CocoaPods Integration tests #
# ------------------------------------ #
#-----------------------------------------------------------------------------#
......@@ -153,7 +153,7 @@ def check_with_folder(folder)
it relative_path do
case expected_path
when %r[Podfile\.lock$], %r[xcodeproj\.yaml$]
when %r[Podfile\.lock$], %r[Manifest\.lock$], %r[xcodeproj\.yaml$]
file_should_exist(produced)
yaml_should_match(expected, produced)
else
......
......@@ -10,4 +10,4 @@ SPEC CHECKSUMS:
JSONKit: 409734ab3407fce90ef7eaa95d7168f38d9a6601
Reachability: ba94ecd4eaa037be3d0588b38956672588530c5b
COCOAPODS: 0.21.0.rc1
COCOAPODS: 0.22.2
../../JSONKit/JSONKit.h
\ No newline at end of file
/*
Copyright (c) 2011, Tony Million.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
#import <Foundation/Foundation.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <sys/socket.h>
#import <netinet/in.h>
#import <netinet6/in6.h>
#import <arpa/inet.h>
#import <ifaddrs.h>
#import <netdb.h>
/**
* Does ARC support support GCD objects?
* It does if the minimum deployment target is iOS 6+ or Mac OS X 8+
**/
#if TARGET_OS_IPHONE
// Compiling for iOS
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000 // iOS 6.0 or later
#define NEEDS_DISPATCH_RETAIN_RELEASE 0
#else // iOS 5.X or earlier
#define NEEDS_DISPATCH_RETAIN_RELEASE 1
#endif
#else
// Compiling for Mac OS X
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 // Mac OS X 10.8 or later
#define NEEDS_DISPATCH_RETAIN_RELEASE 0
#else
#define NEEDS_DISPATCH_RETAIN_RELEASE 1 // Mac OS X 10.7 or earlier
#endif
#endif
extern NSString *const kReachabilityChangedNotification;
typedef enum
{
// Apple NetworkStatus Compatible Names.
NotReachable = 0,
ReachableViaWiFi = 2,
ReachableViaWWAN = 1
} NetworkStatus;
@class Reachability;
typedef void (^NetworkReachable)(Reachability * reachability);
typedef void (^NetworkUnreachable)(Reachability * reachability);
@interface Reachability : NSObject
@property (nonatomic, copy) NetworkReachable reachableBlock;
@property (nonatomic, copy) NetworkUnreachable unreachableBlock;
@property (nonatomic, assign) BOOL reachableOnWWAN;
+(Reachability*)reachabilityWithHostname:(NSString*)hostname;
+(Reachability*)reachabilityForInternetConnection;
+(Reachability*)reachabilityWithAddress:(const struct sockaddr_in*)hostAddress;
+(Reachability*)reachabilityForLocalWiFi;
-(Reachability *)initWithReachabilityRef:(SCNetworkReachabilityRef)ref;
-(BOOL)startNotifier;
-(void)stopNotifier;
-(BOOL)isReachable;
-(BOOL)isReachableViaWWAN;
-(BOOL)isReachableViaWiFi;
// WWAN may be available, but not active until a connection has been established.
// WiFi may require a connection for VPN on Demand.
-(BOOL)isConnectionRequired; // Identical DDG variant.
-(BOOL)connectionRequired; // Apple's routine.
// Dynamic, on demand connection?
-(BOOL)isConnectionOnDemand;
// Is user intervention required?
-(BOOL)isInterventionRequired;
-(NetworkStatus)currentReachabilityStatus;
-(SCNetworkReachabilityFlags)reachabilityFlags;
-(NSString*)currentReachabilityString;
-(NSString*)currentReachabilityFlags;
@end
../../Reachability/Reachability.h
\ No newline at end of file
../../../Sources/Reachability/Reachability.h
\ No newline at end of file
#include "Pods-JSONKit"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/BuildHeaders" "${PODS_ROOT}/Headers/BuildHeaders/JSONKit" "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/JSONKit" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#include "Pods-Reachability"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/BuildHeaders" "${PODS_ROOT}/Headers/BuildHeaders/Reachability" "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/JSONKit" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#include "Pods-JSONKit"
#include "Pods-Reachability"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/JSONKit" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}/Pods/Generated
\ No newline at end of file
File References:
- Frameworks:
- Foundation.framework
- SystemConfiguration.framework
- Pods:
- JSONKit:
- JSONKit.h
- JSONKit.m
- Reachability:
- Reachability.h
- Reachability.m
- Products:
- libPods-JSONKit.a
- libPods-Reachability.a
- libPods.a
- Targets Support Files:
- Pods-JSONKit:
- Pods-JSONKit.xcconfig
- Pods-JSONKit-Private.xcconfig
- Pods-JSONKit-prefix.pch
- Pods-JSONKit-dummy.m
- Pods-Reachability:
- Pods-Reachability.xcconfig
- Pods-Reachability-Private.xcconfig
- Pods-Reachability-prefix.pch
- Pods-Reachability-dummy.m
- Pods:
- Pods.xcconfig
- Pods-environment.h
- Pods-resources.sh
- Pods-acknowledgements.plist
- Pods-acknowledgements.markdown
- Pods-dummy.m
- Podfile
Targets:
- Pods-JSONKit:
Build Phases:
- SourcesBuildPhase:
- JSONKit.m
- Pods-JSONKit-dummy.m
- FrameworksBuildPhase:
- Foundation.framework
- HeadersBuildPhase:
- JSONKit.h
Build Configurations:
- Release:
Build Settings:
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
VALIDATE_PRODUCT: 'YES'
OTHER_CFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
OTHER_CPLUSPLUSFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ARCHS: $(ARCHS_STANDARD_32_BIT)
PRODUCT_NAME: $(TARGET_NAME)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
OTHER_LDFLAGS: ''
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'YES'
GCC_PREFIX_HEADER: Pods-JSONKit-prefix.pch
Base Configuration: Pods-JSONKit-Private.xcconfig
- Debug:
Build Settings:
OTHER_LDFLAGS: ''
PRODUCT_NAME: $(TARGET_NAME)
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
GCC_DYNAMIC_NO_PIC: 'NO'
GCC_OPTIMIZATION_LEVEL: '0'
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
ARCHS: $(ARCHS_STANDARD_32_BIT)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
GCC_PREPROCESSOR_DEFINITIONS:
- DEBUG=1
- $(inherited)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'NO'
GCC_PREFIX_HEADER: Pods-JSONKit-prefix.pch
Base Configuration: Pods-JSONKit-Private.xcconfig
- Pods-Reachability:
Build Phases:
- SourcesBuildPhase:
- Reachability.m
- Pods-Reachability-dummy.m
- FrameworksBuildPhase:
- Foundation.framework
- HeadersBuildPhase:
- Reachability.h
Build Configurations:
- Release:
Build Settings:
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
VALIDATE_PRODUCT: 'YES'
OTHER_CFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
OTHER_CPLUSPLUSFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ARCHS: $(ARCHS_STANDARD_32_BIT)
PRODUCT_NAME: $(TARGET_NAME)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
OTHER_LDFLAGS: ''
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'YES'
GCC_PREFIX_HEADER: Pods-Reachability-prefix.pch
Base Configuration: Pods-Reachability-Private.xcconfig
- Debug:
Build Settings:
OTHER_LDFLAGS: ''
PRODUCT_NAME: $(TARGET_NAME)
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
GCC_DYNAMIC_NO_PIC: 'NO'
GCC_OPTIMIZATION_LEVEL: '0'
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
ARCHS: $(ARCHS_STANDARD_32_BIT)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
GCC_PREPROCESSOR_DEFINITIONS:
- DEBUG=1
- $(inherited)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'NO'
GCC_PREFIX_HEADER: Pods-Reachability-prefix.pch
Base Configuration: Pods-Reachability-Private.xcconfig
- Pods:
Build Phases:
- SourcesBuildPhase:
- Pods-dummy.m
- FrameworksBuildPhase:
- Foundation.framework
- libPods-JSONKit.a
- libPods-Reachability.a
Build Configurations:
- Release:
Build Settings:
SDKROOT: iphoneos
VALIDATE_PRODUCT: 'YES'
OTHER_CFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
OTHER_CPLUSPLUSFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ARCHS: $(ARCHS_STANDARD_32_BIT)
PRODUCT_NAME: $(TARGET_NAME)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
OTHER_LDFLAGS: ''
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'YES'
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
Base Configuration: Pods.xcconfig
- Debug:
Build Settings:
PRODUCT_NAME: $(TARGET_NAME)
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
GCC_DYNAMIC_NO_PIC: 'NO'
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
GCC_OPTIMIZATION_LEVEL: '0'
ARCHS: $(ARCHS_STANDARD_32_BIT)
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_PREPROCESSOR_DEFINITIONS:
- DEBUG=1
- $(inherited)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'NO'
OTHER_LDFLAGS: ''
Base Configuration: Pods.xcconfig
Build Configurations:
- Release:
Build Settings:
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
- Debug:
Build Settings:
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
../../JSONKit/JSONKit.h
\ No newline at end of file
/*
Copyright (c) 2011, Tony Million.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
#import <Foundation/Foundation.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <sys/socket.h>
#import <netinet/in.h>
#import <netinet6/in6.h>
#import <arpa/inet.h>
#import <ifaddrs.h>
#import <netdb.h>
/**
* Does ARC support support GCD objects?
* It does if the minimum deployment target is iOS 6+ or Mac OS X 8+
**/
#if TARGET_OS_IPHONE
// Compiling for iOS
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000 // iOS 6.0 or later
#define NEEDS_DISPATCH_RETAIN_RELEASE 0
#else // iOS 5.X or earlier
#define NEEDS_DISPATCH_RETAIN_RELEASE 1
#endif
#else
// Compiling for Mac OS X
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 // Mac OS X 10.8 or later
#define NEEDS_DISPATCH_RETAIN_RELEASE 0
#else
#define NEEDS_DISPATCH_RETAIN_RELEASE 1 // Mac OS X 10.7 or earlier
#endif
#endif
extern NSString *const kReachabilityChangedNotification;
typedef enum
{
// Apple NetworkStatus Compatible Names.
NotReachable = 0,
ReachableViaWiFi = 2,
ReachableViaWWAN = 1
} NetworkStatus;
@class Reachability;
typedef void (^NetworkReachable)(Reachability * reachability);
typedef void (^NetworkUnreachable)(Reachability * reachability);
@interface Reachability : NSObject
@property (nonatomic, copy) NetworkReachable reachableBlock;
@property (nonatomic, copy) NetworkUnreachable unreachableBlock;
@property (nonatomic, assign) BOOL reachableOnWWAN;
+(Reachability*)reachabilityWithHostname:(NSString*)hostname;
+(Reachability*)reachabilityForInternetConnection;
+(Reachability*)reachabilityWithAddress:(const struct sockaddr_in*)hostAddress;
+(Reachability*)reachabilityForLocalWiFi;
-(Reachability *)initWithReachabilityRef:(SCNetworkReachabilityRef)ref;
-(BOOL)startNotifier;
-(void)stopNotifier;
-(BOOL)isReachable;
-(BOOL)isReachableViaWWAN;
-(BOOL)isReachableViaWiFi;
// WWAN may be available, but not active until a connection has been established.
// WiFi may require a connection for VPN on Demand.
-(BOOL)isConnectionRequired; // Identical DDG variant.
-(BOOL)connectionRequired; // Apple's routine.
// Dynamic, on demand connection?
-(BOOL)isConnectionOnDemand;
// Is user intervention required?
-(BOOL)isInterventionRequired;
-(NetworkStatus)currentReachabilityStatus;
-(SCNetworkReachabilityFlags)reachabilityFlags;
-(NSString*)currentReachabilityString;
-(NSString*)currentReachabilityFlags;
@end
../../Reachability/Reachability.h
\ No newline at end of file
......@@ -10,4 +10,4 @@ SPEC CHECKSUMS:
JSONKit: 409734ab3407fce90ef7eaa95d7168f38d9a6601
Reachability: ba94ecd4eaa037be3d0588b38956672588530c5b
COCOAPODS: 0.21.0.rc1
COCOAPODS: 0.22.2
#include "Pods-JSONKit.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/JSONKit" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/JSONKit" "${PODS_ROOT}/Headers/Reachability"
OTHER_LDFLAGS = -ObjC
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#include "Pods-Reachability.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Reachability" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/JSONKit" "${PODS_ROOT}/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#!/bin/sh
set -e
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
install_resource()
{
case $1 in
*.storyboard)
echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
;;
*.xib)
echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
;;
*.framework)
echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -rp "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "cp -fpR ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
cp -fpR "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel | *.xcdatamodeld)
echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/$1.momd\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/$1.momd"
;;
*)
echo "cp -R ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
cp -R "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
echo "${PODS_ROOT}/$1"
echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY"
;;
esac
}
rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rm -f "$RESOURCES_TO_COPY"
ALWAYS_SEARCH_USER_PATHS = YES
HEADER_SEARCH_PATHS = ${PODS_HEADERS_SEARCH_PATHS}
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/JSONKit" "${PODS_ROOT}/Headers/Reachability"
OTHER_LDFLAGS = -ObjC -framework SystemConfiguration
PODS_BUILD_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers/BuildHeaders" "${PODS_ROOT}/Headers/BuildHeaders/Reachability"
PODS_HEADERS_SEARCH_PATHS = ${PODS_PUBLIC_HEADERS_SEARCH_PATHS}
PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Reachability"
PODS_ROOT = ${SRCROOT}/Pods/Generated
\ No newline at end of file
PODS_ROOT = ${SRCROOT}/Pods
\ No newline at end of file
File References:
- Products:
- libPods.a
- Frameworks:
- Foundation.framework
- SystemConfiguration.framework
- Pods:
- JSONKit:
- JSONKit.h
- JSONKit.m
- Reachability:
- Reachability.h
- Reachability.m
- Products:
- libPods-JSONKit.a
- libPods-Reachability.a
- libPods.a
- Targets Support Files:
- Pods-JSONKit:
- Pods-JSONKit.xcconfig
- Pods-JSONKit-Private.xcconfig
- Pods-JSONKit-prefix.pch
- Pods-JSONKit-dummy.m
- Pods-Reachability:
- Pods-Reachability.xcconfig
- Pods-Reachability-Private.xcconfig
- Pods-Reachability-prefix.pch
- Pods-Reachability-dummy.m
- Pods:
- Pods-resources.sh
- Pods-prefix.pch
- Pods.xcconfig
- PodsDummy_Pods.m
- Pods-environment.h
- Pods-resources.sh
- Pods-acknowledgements.plist
- Pods-acknowledgements.markdown
- Pods-dummy.m
- Podfile
Targets:
- Pods:
- Pods-JSONKit:
Build Phases:
- SourcesBuildPhase:
- Reachability.m:
COMPILER_FLAGS: -fobjc-arc -DOS_OBJECT_USE_OBJC=0
- PodsDummy_Pods.m
- JSONKit.m
- Pods-JSONKit-dummy.m
- FrameworksBuildPhase:
- Foundation.framework
- HeadersBuildPhase:
- Reachability.h
- JSONKit.h
Build Configurations:
- Release:
Build Settings:
COPY_PHASE_STRIP: 'YES'
PODS_HEADERS_SEARCH_PATHS: ${PODS_BUILD_HEADERS_SEARCH_PATHS}
PODS_ROOT: ${SRCROOT}
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
VALIDATE_PRODUCT: 'YES'
OTHER_CFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
OTHER_CPLUSPLUSFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ARCHS: $(ARCHS_STANDARD_32_BIT)
......@@ -48,41 +69,157 @@ Targets:
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
OTHER_LDFLAGS: ''
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
GCC_WARN_INHIBIT_ALL_WARNINGS: 'NO'
GCC_PREFIX_HEADER: Pods-prefix.pch
Base Configuration: Pods.xcconfig
COPY_PHASE_STRIP: 'YES'
GCC_PREFIX_HEADER: Pods-JSONKit-prefix.pch
Base Configuration: Pods-JSONKit-Private.xcconfig
- Debug:
Build Settings:
OTHER_LDFLAGS: ''
PRODUCT_NAME: $(TARGET_NAME)
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
GCC_DYNAMIC_NO_PIC: 'NO'
GCC_OPTIMIZATION_LEVEL: '0'
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
ARCHS: $(ARCHS_STANDARD_32_BIT)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
GCC_PREPROCESSOR_DEFINITIONS:
- DEBUG=1
- $(inherited)
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
GCC_PREFIX_HEADER: Pods-prefix.pch
GCC_OPTIMIZATION_LEVEL: '0'
PODS_HEADERS_SEARCH_PATHS: ${PODS_BUILD_HEADERS_SEARCH_PATHS}
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'NO'
GCC_PREFIX_HEADER: Pods-JSONKit-prefix.pch
Base Configuration: Pods-JSONKit-Private.xcconfig
- Pods-Reachability:
Build Phases:
- SourcesBuildPhase:
- Reachability.m
- Pods-Reachability-dummy.m
- FrameworksBuildPhase:
- Foundation.framework
- HeadersBuildPhase:
- Reachability.h
Build Configurations:
- Release:
Build Settings:
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
VALIDATE_PRODUCT: 'YES'
OTHER_CFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
GCC_C_LANGUAGE_STANDARD: gnu99
OTHER_LDFLAGS: ''
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
OTHER_CPLUSPLUSFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ARCHS: $(ARCHS_STANDARD_32_BIT)
PRODUCT_NAME: $(TARGET_NAME)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
OTHER_LDFLAGS: ''
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'YES'
GCC_PREFIX_HEADER: Pods-Reachability-prefix.pch
Base Configuration: Pods-Reachability-Private.xcconfig
- Debug:
Build Settings:
OTHER_LDFLAGS: ''
PRODUCT_NAME: $(TARGET_NAME)
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
GCC_DYNAMIC_NO_PIC: 'NO'
GCC_OPTIMIZATION_LEVEL: '0'
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
ARCHS: $(ARCHS_STANDARD_32_BIT)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
GCC_PREPROCESSOR_DEFINITIONS:
- DEBUG=1
- $(inherited)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'NO'
GCC_PREFIX_HEADER: Pods-Reachability-prefix.pch
Base Configuration: Pods-Reachability-Private.xcconfig
- Pods:
Build Phases:
- SourcesBuildPhase:
- Pods-dummy.m
- FrameworksBuildPhase:
- Foundation.framework
- libPods-JSONKit.a
- libPods-Reachability.a
Build Configurations:
- Release:
Build Settings:
SDKROOT: iphoneos
PRODUCT_NAME: $(TARGET_NAME)
GCC_DYNAMIC_NO_PIC: 'NO'
VALIDATE_PRODUCT: 'YES'
OTHER_CFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
PODS_ROOT: ${SRCROOT}
DSTROOT: /tmp/xcodeproj.dst
OTHER_CPLUSPLUSFLAGS:
- -DNS_BLOCK_ASSERTIONS=1
- $(inherited)
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ARCHS: $(ARCHS_STANDARD_32_BIT)
PRODUCT_NAME: $(TARGET_NAME)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
OTHER_LDFLAGS: ''
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'YES'
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
Base Configuration: Pods.xcconfig
- Debug:
Build Settings:
PRODUCT_NAME: $(TARGET_NAME)
PUBLIC_HEADERS_FOLDER_PATH: $(TARGET_NAME)
SDKROOT: iphoneos
GCC_C_LANGUAGE_STANDARD: gnu99
SKIP_INSTALL: 'YES'
GCC_WARN_INHIBIT_ALL_WARNINGS: 'NO'
INSTALL_PATH: $(BUILT_PRODUCTS_DIR)
DSTROOT: /tmp/xcodeproj.dst
GCC_DYNAMIC_NO_PIC: 'NO'
GCC_SYMBOLS_PRIVATE_EXTERN: 'NO'
GCC_OPTIMIZATION_LEVEL: '0'
ARCHS: $(ARCHS_STANDARD_32_BIT)
GCC_VERSION: com.apple.compilers.llvm.clang.1_0
ALWAYS_SEARCH_USER_PATHS: 'NO'
GCC_PREPROCESSOR_DEFINITIONS:
- DEBUG=1
- $(inherited)
GCC_PRECOMPILE_PREFIX_HEADER: 'YES'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
COPY_PHASE_STRIP: 'NO'
OTHER_LDFLAGS: ''
Base Configuration: Pods.xcconfig
Build Configurations:
- Release:
Build Settings: {}
Build Settings:
STRIP_INSTALLED_PRODUCT: 'NO'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
- Debug:
Build Settings: {}
Build Settings:
STRIP_INSTALLED_PRODUCT: 'NO'
IPHONEOS_DEPLOYMENT_TARGET: '6.0'
<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:Pods/Pods.xcodeproj'/><FileRef location='group:SampleApp.xcodeproj'/><FileRef location='group:Pods/Generated/Pods.xcodeproj'/></Workspace>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:Pods/Pods.xcodeproj'/><FileRef location='group:SampleApp.xcodeproj'/></Workspace>
\ No newline at end of file
CP_AGGRESSIVE_CACHE=TRUE $ pod install --no-repo-update --verbose --no-color 2>&1
Performing existing installation migration
Analyzing dependencies
Finding Podfile changes
......@@ -14,7 +12,7 @@ Resolving dependencies for target `Pods' (iOS 6.0)
Comparing resolved specification to the sandbox manifest
A JSONKit
A Reachability
- Reachability
Downloading dependencies
......@@ -27,37 +25,13 @@ Downloading dependencies
$ /usr/bin/git rev-list --max-count=1 0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce
0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce
> Cloning to Pods folder
$ /usr/bin/git clone
"CACHES_DIR/GitHub/de3e1c97c03ac13b29e7533beea
2d2131589900f"
"ROOT/tmp/install_add_pod/Pods/Generated/Sourc
es/JSONKit"
Cloning into 'ROOT/tmp/install_add_pod/Pods/Generated/Sources/JSONKit'...
$ /usr/bin/git clone "CACHES_DIR/GitHub/de3e1c97c03ac13b29e7533beea2d2131589900f" "ROOT/tmp/install_add_pod/Pods/JSONKit"
Cloning into 'ROOT/tmp/install_add_pod/Pods/JSONKit'...
done.
$ /usr/bin/git checkout -b activated-pod-commit
0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce 2>&1
$ /usr/bin/git checkout -b activated-pod-commit 0aff3deb5e1bb2bbc88a83fd71c8ad5550185cce 2>&1
Switched to a new branch 'activated-pod-commit'
-> Installing Reachability (3.1.0)
> GitHub download
$ /usr/bin/git config core.bare
true
$ /usr/bin/git config core.bare
true
$ /usr/bin/git rev-list --max-count=1 v3.1.0
f7176f4798d068d233dca5223ae4bd9c8059e830
$ /usr/bin/git init
Initialized empty Git repository in ROOT/tmp/install_add_pod/Pods/Generated/Sources/Reachability/.git/
$ /usr/bin/git remote add origin
'CACHES_DIR/GitHub/48f11286750afa2e2eb80564e288f
42eed7cbab6'
$ /usr/bin/git fetch origin tags/v3.1.0 2>&1
From CACHES_DIR/GitHub/48f11286750afa2e2eb80564e288f42eed7cbab6
* tag v3.1.0 -> FETCH_HEAD
$ /usr/bin/git reset --hard FETCH_HEAD
HEAD is now at f7176f4 updated podspec
$ /usr/bin/git checkout -b activated-pod-commit 2>&1
Switched to a new branch 'activated-pod-commit'
-> Using Reachability (3.1.0)
- Running pre install hooks
Generating Pods project
......@@ -68,28 +42,26 @@ Generating Pods project
- Installing libraries
- Installing target `Pods-JSONKit` iOS 6.0
- Adding Build files
- Generating public xcconfig file at `Pods/Generated/Pods-JSONKit.xcconfig`
- Generating private xcconfig file at
`Pods/Generated/Pods-JSONKit-Private.xcconfig`
- Generating prefix header at `Pods/Generated/Pods-JSONKit-prefix.pch`
- Generating dummy source file at `Pods/Generated/Pods-JSONKit-dummy.m`
- Generating public xcconfig file at `Pods/Pods-JSONKit.xcconfig`
- Generating private xcconfig file at `Pods/Pods-JSONKit-Private.xcconfig`
- Generating prefix header at `Pods/Pods-JSONKit-prefix.pch`
- Generating dummy source file at `Pods/Pods-JSONKit-dummy.m`
- Installing target `Pods-Reachability` iOS 6.0
- Adding Build files
- Generating public xcconfig file at `Pods/Generated/Pods-Reachability.xcconfig`
- Generating private xcconfig file at
`Pods/Generated/Pods-Reachability-Private.xcconfig`
- Generating prefix header at `Pods/Generated/Pods-Reachability-prefix.pch`
- Generating dummy source file at `Pods/Generated/Pods-Reachability-dummy.m`
- Generating public xcconfig file at `Pods/Pods-Reachability.xcconfig`
- Generating private xcconfig file at `Pods/Pods-Reachability-Private.xcconfig`
- Generating prefix header at `Pods/Pods-Reachability-prefix.pch`
- Generating dummy source file at `Pods/Pods-Reachability-dummy.m`
- Installing target `Pods` iOS 6.0
- Generating xcconfig file at `Pods/Generated/Pods.xcconfig`
- Generating target environment header at `Pods/Generated/Pods-environment.h`
- Generating copy resources script at `Pods/Generated/Pods-resources.sh`
- Generating acknowledgements at `Pods/Generated/Pods-acknowledgements.plist`
- Generating acknowledgements at `Pods/Generated/Pods-acknowledgements.markdown`
- Generating dummy source file at `Pods/Generated/Pods-dummy.m`
- Generating xcconfig file at `Pods/Pods.xcconfig`
- Generating target environment header at `Pods/Pods-environment.h`
- Generating copy resources script at `Pods/Pods-resources.sh`
- Generating acknowledgements at `Pods/Pods-acknowledgements.plist`
- Generating acknowledgements at `Pods/Pods-acknowledgements.markdown`
- Generating dummy source file at `Pods/Pods-dummy.m`
- Running post install hooks
- Writing Xcode project file to `Pods/Generated/Pods.xcodeproj`
- Writing Xcode project file to `Pods/Pods.xcodeproj`
- Writing Lockfile in `Podfile.lock`
- Writing Manifest in `Pods/Generated/Manifest.lock`
- Writing Manifest in `Pods/Manifest.lock`
Integrating client project
ALWAYS_SEARCH_USER_PATHS = YES
HEADER_SEARCH_PATHS = ${PODS_HEADERS_SEARCH_PATHS}
OTHER_LDFLAGS = -ObjC -framework SystemConfiguration
PODS_BUILD_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers/BuildHeaders" "${PODS_ROOT}/Headers/BuildHeaders/Reachability"
PODS_BUILD_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Reachability"
PODS_HEADERS_SEARCH_PATHS = ${PODS_PUBLIC_HEADERS_SEARCH_PATHS}
PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Reachability"
PODS_ROOT = ${SRCROOT}/Pods/Generated
\ No newline at end of file
PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Reachability"
PODS_ROOT = ${SRCROOT}/Pods
\ No newline at end of file
......@@ -8,4 +8,4 @@ DEPENDENCIES:
SPEC CHECKSUMS:
Reachability: ba94ecd4eaa037be3d0588b38956672588530c5b
COCOAPODS: 0.21.0.rc1
COCOAPODS: 0.22.2
#include "Pods-SampleApp_1-Reachability"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/BuildHeaders" "${PODS_ROOT}/Headers/BuildHeaders/Reachability" "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_SAMPLEAPP___REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#include "Pods-SampleApp_1-Reachability"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_SAMPLEAPP___REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}/Pods/Generated
\ No newline at end of file
#include "Pods-SampleApp_2-Reachability"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/BuildHeaders" "${PODS_ROOT}/Headers/BuildHeaders/Reachability" "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_SAMPLEAPP___REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#include "Pods-SampleApp_2-Reachability"
ALWAYS_SEARCH_USER_PATHS = YES
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Headers" "${PODS_ROOT}/Headers/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_SAMPLEAPP___REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}/Pods/Generated
\ No newline at end of file
../../Reachability/Reachability.h
\ No newline at end of file
......@@ -8,4 +8,4 @@ DEPENDENCIES:
SPEC CHECKSUMS:
Reachability: ba94ecd4eaa037be3d0588b38956672588530c5b
COCOAPODS: 0.21.0.rc1
COCOAPODS: 0.22.2
#include "Pods-SampleApp_1-Reachability.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Reachability" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_SAMPLEAPP___REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
#!/bin/sh
set -e
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
......@@ -15,12 +16,14 @@ install_resource()
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
;;
*.framework)
echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -rp "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "cp -fpR ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
cp -fpR "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodeld)
echo "xcrun momc ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd"
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd"
*.xcdatamodel | *.xcdatamodeld)
echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/$1.momd\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/$1.momd"
;;
*)
echo "${PODS_ROOT}/$1"
......@@ -30,4 +33,4 @@ install_resource()
}
rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rm "$RESOURCES_TO_COPY"
rm -f "$RESOURCES_TO_COPY"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Reachability"
OTHER_LDFLAGS = -ObjC -framework SystemConfiguration
PODS_ROOT = ${SRCROOT}/Pods
\ No newline at end of file
#include "Pods-SampleApp_2-Reachability.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Reachability" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Reachability"
OTHER_LDFLAGS = -ObjC ${PODS_SAMPLEAPP___REACHABILITY_OTHER_LDFLAGS}
PODS_ROOT = ${SRCROOT}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment