sonsongithub / reddift

Swift Reddit API Wrapper
MIT License
242 stars 52 forks source link

Unable to install reddift from Cocoapods #190

Closed colindean closed 8 years ago

colindean commented 8 years ago

This is my first time using the Cocoapods ecosystem, so the problem could entirely be user error!

$ pod install
Analyzing dependencies
Downloading dependencies
Installing reddift (1.6.0)

[!] Error installing reddift
[!] /usr/local/bin/git clone https://github.com/sonsongithub/reddift.git /var/folders/tn/qtn_4h693933whtf14410v240000gn/T/d20160619-35814-1n9g4h3 --template= --single-branch --depth 1 --branch v1.6.0 --recursive

Cloning into '/var/folders/tn/qtn_4h693933whtf14410v240000gn/T/d20160619-35814-1n9g4h3'...
Note: checking out '6eaf3308c75287e11b95f46a7b3fe399ad6a1b05'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

Submodule 'reddift/vendor/KeychainAccess' (https://github.com/kishikawakatsumi/KeychainAccess.git) registered for path 'reddift/vendor/KeychainAccess'
Submodule 'reddiftSample/vendor/UZTextView' (https://github.com/sonsongithub/UZTextView.git) registered for path 'reddiftSample/vendor/UZTextView'
Cloning into '/private/var/folders/tn/qtn_4h693933whtf14410v240000gn/T/d20160619-35814-1n9g4h3/reddift/vendor/KeychainAccess'...
Cloning into '/private/var/folders/tn/qtn_4h693933whtf14410v240000gn/T/d20160619-35814-1n9g4h3/reddiftSample/vendor/UZTextView'...
error: no such remote ref 30744e7929a1f10709997d3c75ee82d855cdb8e6
Fetched in submodule path 'reddift/vendor/KeychainAccess', but it did not contain 30744e7929a1f10709997d3c75ee82d855cdb8e6. Direct fetching of that commit failed.

My Podfile:

target 'MyApp' do
  use_frameworks!
  pod 'reddift', '~> 1.6'
end
target 'MyAppDebugger' do
  use_frameworks!
end

I tried bumping reddift to ~> 1.7 upon seeing a 1.7.0 tag in this repo, but cocoapods tells me that it's not available:

$ pod list | grep reddift
  reddift 1.6.0

What can I do?

sonsongithub commented 8 years ago

I can do "pod install" as following steps.

  1. Run Xcode.
  2. Create "New Project" on Xcode, the name is "sample".
  3. Close the project.
  4. Create Podfile.
  5. open Terminal.app and move to the directory which includes "sample" project.
  6. do pod install.
  7. Finished, sample.xcworkspace is created.

Podfile

platform :ios, '9.0'
use_frameworks!

target 'sample' do
  pod 'reddift', '~> 1.6'
end
colindean commented 8 years ago

I tried something similar, but didn't get a usable result:

platform :osx, '10.11'
use_frameworks!
target 'MyApp' do
  pod 'reddift', '~> 1.6'
end

target 'MyApp Debugger' do
end

So I tried checking it out directly using the same command that pod does:

git clone https://github.com/sonsongithub/reddift.git --template= --single-branch --depth 1 --branch v1.6.0 --recursive
remote: Counting objects: 248, done.
remote: Compressing objects: 100% (212/212), done.
remote: Total 248 (delta 57), reused 123 (delta 27), pack-reused 0
Receiving objects: 100% (248/248), 248.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (57/57), done.
Checking connectivity... done.
Note: checking out '6eaf3308c75287e11b95f46a7b3fe399ad6a1b05'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

Submodule 'reddift/vendor/KeychainAccess' (https://github.com/kishikawakatsumi/KeychainAccess.git) registered for path 'reddift/vendor/KeychainAccess'
Submodule 'reddiftSample/vendor/UZTextView' (https://github.com/sonsongithub/UZTextView.git) registered for path 'reddiftSample/vendor/UZTextView'
Cloning into '/Users/colin/Source/RedditGifsScreensaver/reddift/reddift/vendor/KeychainAccess'...
Cloning into '/Users/colin/Source/RedditGifsScreensaver/reddift/reddiftSample/vendor/UZTextView'...
error: no such remote ref 30744e7929a1f10709997d3c75ee82d855cdb8e6
Fetched in submodule path 'reddift/vendor/KeychainAccess', but it did not contain 30744e7929a1f10709997d3c75ee82d855cdb8e6. Direct fetching of that commit failed.

It looks like https://github.com/kishikawakatsumi/KeychainAccess doesn't have the commit that reddift vendors at reddift/vendor/KeychainAccess.

What's crazy is that the commit exists! If you go to https://github.com/sonsongithub/reddift/tree/v1.6.0/reddift/vendor and click the submodule there, it navigates just fine. When I clone the https://github.com/kishikawakatsumi/KeychainAccess repo individually, the commit is there! I'm totally confused.

colindean commented 8 years ago

If I do the checkout simply and manually, it works:

[colin@ayla MyApp (master)]$ /usr/local/bin/git clone https://github.com/sonsongithub/reddift.git --single-branch --branch v1.6.0
Cloning into 'reddift'...
remote: Counting objects: 4137, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 4137 (delta 2), reused 9 (delta 2), pack-reused 4124
Receiving objects: 100% (4137/4137), 1.26 MiB | 0 bytes/s, done.
Resolving deltas: 100% (3014/3014), done.
Checking connectivity... done.
Note: checking out '6eaf3308c75287e11b95f46a7b3fe399ad6a1b05'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

[colin@ayla MyApp (master)]$ cd reddift/
[colin@ayla reddift ((v1.6.0))]$ git submodule init
Submodule 'reddift/vendor/KeychainAccess' (https://github.com/kishikawakatsumi/KeychainAccess.git) registered for path 'reddift/vendor/KeychainAccess'
Submodule 'reddiftSample/vendor/UZTextView' (https://github.com/sonsongithub/UZTextView.git) registered for path 'reddiftSample/vendor/UZTextView'
[colin@ayla reddift ((v1.6.0))]$ git submodule
add       deinit    foreach   init      status    summary   sync      update
[colin@ayla reddift ((v1.6.0))]$ git submodule sync
Synchronizing submodule url for 'reddift/vendor/KeychainAccess'
Synchronizing submodule url for 'reddiftSample/vendor/UZTextView'
[colin@ayla reddift ((v1.6.0))]$ git submodule update
Cloning into '/Users/colin/Source/MyApp/reddift/reddift/vendor/KeychainAccess'...
Cloning into '/Users/colin/Source/MyApp/reddift/reddiftSample/vendor/UZTextView'...
Submodule path 'reddift/vendor/KeychainAccess': checked out '30744e7929a1f10709997d3c75ee82d855cdb8e6'
Submodule path 'reddiftSample/vendor/UZTextView': checked out '7e4d463cc4902aab8e506cfd9678d48a8fb50d88'
[colin@ayla reddift ((v1.6.0))]$
colindean commented 8 years ago

It's becoming clear that this is a cocoapods problem, not a reddift problem.

colindean commented 8 years ago

Workaround for me was to use an older git, because apparently 2.9.0 changed something and cocoapods hasn't caught up yet.

PATH=/usr/local/Cellar/git/2.8.3/bin:$PATH pod install
sonsongithub commented 8 years ago

Good.