web-dev-qa-db-ja.com

プライベートgitlabポッド/プロジェクトコンテナに対して「ポッドインストール」を実行すると、「ポッドスペックが見つかりません」というメッセージが表示されます

私はいくつかのCocoaPodsプロジェクトの最中に、メインプロジェクトから「ポッドインストール」を介して到達可能な独自のプライベートポッドを構築しようとしています。これはSwiftプロジェクトであり、すべてが機能しているようで、適切なチュートリアルを読んでいます...

私はしばらくの間ココアポッドを使用していると言わなければなりませんが、私は一種の新しい自分のポッドを構築してプライベートgitlabに保存していますスペース。

そして、それが私の問題のようです。どうやら、最近作成したポッドをgitlabスペースに適切に保存する方法がわかりません。さらに、「pod install」を実行すると、podspecファイルをフェッチできません。

私が今持っているのは、Podfileを使用したメインプロジェクトです。このプロジェクトでは、ポッドの次の簡単な定義があります(2つのパブリック(SpkinKitとMBProgressHUD)と1つのプライベートの「コモンズ」):私のポッドファイルは次のとおりです。

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'

target 'MyBaseApp' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyBaseApp

  pod 'SpinKit'
  pod 'MBProgressHUD'
  pod 'commons', :path => 'ssh://git@internal_ip_numeric_address_of_my_gitlab_machine:2222/myusername/ios_commons_pod.git'

end

「podinstall--verbose」と入力すると、次の出力が得られます。

Fetching external sources
-> Fetching podspec for `commons` from `ssh://git@internal_ip_numeric_address_of_my_gitlab_machine:2222/myusername/ios_commons_pod.git`
[!] No podspec found for `commons` in `ssh://git@internal_ip_numeric_address_of_my_gitlab_machine:2222/myusername/ios_commons_pod.git`

このクラッシュではポッドをダウンロードできず、プロセスはここで停止します。

何が悪いようですか?私が理解している限り、私はそのgitlabパスルートにpodspecファイルを持っています。このスクリーンショットを見てください:

File Structure inside my Gitlab

私が使用しているURLスキームは、SSHフレーバーのスキームです。これは、gitlabプロジェクトのホームページのルートに表示されるものです(HTTP/HTTPSのものではありません)。これはプロジェクトの制限であるため、HTTPを使用することはできません。

OTOH SSH資格情報(およびキー設定)は私のマシンに正常に保存されていると思います。どうして?コマンドラインからそのURLに対してsshシェルを使用しようとすると、ユーザー名とパスワードを指定せずに画面に「Welcome myusername」が表示されるためです(その後、セキュリティ上の理由からgitlabマシンはそのシェルからログアウトしますが、それは別のテーマです。それは別のテーマです。期待される動作)。

いずれにせよ、ベースアプリのPodfileで使用する正確なURL形式/パスがまだわかりません。

Gitlab内には、最後のスクリーンショットに示されている構造でファイルとpodspecファイルが保存されていますが、すべてが正常にセットアップされているかどうかはまだ100%わかりません。

Commons.podspecファイルの内容は次のとおりです。

Pod::Spec.new do |s|

  # 1
  s.platform = :ios
  s.ios.deployment_target = '8.0'
  s.name = "commons"
  s.summary = "commons test fw via pod."
  s.requires_arc = true

  # 2
  s.version = "0.1.0"

  # 3
  s.license = { :type => "MIT", :file => "LICENSE" }

  # 4 - Replace with your name and e-mail address
  s.author = { "Me" => "[email protected]" }


  # 5 - Replace this URL with your own Github page's URL (from the address bar)
  s.homepage = "http://internal_ip_numeric_address_of_my_gitlab_machine:8888/myusername"

  # 6 - Replace this URL with your own Git URL from "Quick Setup"
  s.source = { :git => "http://internal_ip_numeric_address_of_my_gitlab_machine:8888/myusername/ios_commons_pod.git", :tag => "#{s.version}"}

  # 7
  s.framework = "UIKit"
  s.dependency 'RNCryptor'

  # 8
  s.source_files = "commons/**/*.{Swift}"

  # 9
  s.resources = "commons/**/*.{png,jpeg,jpg,xib,storyboard}"
end

ヒントはありますか?

ありがとう。

8
Isaac

あなたがする必要がある唯一のことは変更することです:path =>から:git =>そしてそれはあなたのリポジトリからポッドをダウンロードするはずです。

10
M.Sprind

ポッドの仕様をホストするには、別のリポジトリが必要です。

  1. リポジトリを作成する
  2. PodSpecリポジトリをマシンに追加しますpod repo add PodSpecs [Your PodSpecs Git URL]
  3. ポッドスペックをリポジトリにプッシュしますpod repo Push PodSpecs your.podspec

情報源: https://www.raywenderlich.com/99386/create-cocoapod-Swift

0
Hodson