Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

An unexpected version directory Classes was encountered

I get an error while create a private repo. This are the steps I take:

  1. Create folder, run pod lint create PrivateRepo and set the values
  2. Create private repo in BitBucket
  3. Run this command in the PrivateRepo folder:

commands:

git add .
git commit -m “Initial Commit"
git remote add origin https://[email protected]/Username/privaterepo.git
git push -u origin master
  1. Change the summary and homepage in my podspec, and set the bitbucket link above as source
  2. Run this commands:

commands:

git tag 0.1.0
git push origin 0.1.0
  1. Running pod spec lint --swift-version=4.1 now passes validation
  2. Run this commands:

commands:

pod repo add PrivateRepo https://[email protected]/Username/privaterepo.git
pod repo push PrivateRepo PrivateRepo.podspec --swift-version=4.1
  1. Till now, no error has ocurred. However when I want to pod install that pod into my other project, I get an error:

An unexpected version directory Classes was encountered for the /Users/Username/.cocoapods/repos/PrivateRepo/PrivateRepo Pod in the PrivateRepo repository.

This is my podfile in my other project:

source 'https://[email protected]/Username/privaterepo.git'
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, ’10.3’

target 'OtherProject' do
  use_frameworks!
pod 'PrivateRepo'
end

This is my podspec file:

Pod::Spec.new do |s|
  s.name             = 'PrivateRepo'
  s.version          = '0.1.0'
  s.summary          = 'test'

  s.description      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

  s.homepage         = 'https://google.com'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'Username' => '[email protected]' }
  s.source           = { :git => 'https://[email protected]/Username/privaterepo.git', :tag => s.version.to_s }

  s.ios.deployment_target = '8.0'

  s.source_files = 'PrivateRepo/Classes/**/*'
end
like image 307
J. Doe Avatar asked May 06 '18 11:05

J. Doe


1 Answers

It looks like you're almost there, but just haven't set up your podspec repo (which is a recommended step: https://guides.cocoapods.org/making/private-cocoapods.html).

In your Podfile, try replacing the source URL of your repo to that of your spec instead. Eg:

source 'https://[email protected]/username/private-repo-specs.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ’10.3’

target 'OtherProject' do
  use_frameworks!
pod 'PrivateRepo'
end

I also found this article helpful in setting up a private repo: https://medium.com/practical-code-labs/how-to-create-private-cocoapods-in-swift-3cc199976a18

EDIT

In our project, we now URL directly to the git source in the pod file, as it allows us to quickly change branches in the pod and means you can remove the 2 source lines I mentioned above. Either way works though :).

Here is an example of using a URL straight to the git project in your pod file:

pod ‘PrivatePod’, :git => "[email protected]:Test/privatepod.git"

like image 178
JWhitey Avatar answered Nov 19 '22 16:11

JWhitey