web-dev-qa-db-ja.com

ココアポッドはシミュレーターを見つけることができません、ポッドリポジトリプッシュは失敗します

プライベートポッドをプッシュしようとしています。実行すると、次のエラーが表示されます。

- ERROR | [iOS] unknown: Encountered an unknown error (Could not find aiossimulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least oneiossimulator listed or otherwise add one.) during validation.

私はXcode 1andを実行しています。最近、マシンでXcode 10.1 betaを使用しました。また、定期的なココアポッド(1.5.3)とその最新のベータ版(1.6.0.beta.1)がありました。

複雑さを減らすために、私は両方のベータ版を削除私のマシンから。したがって、リリースされたバージョンだけです。まだこのエラーが表示されます。

ここで何が起きたのか想像できません。しかし、somethingは破壊されています。 Xcodeを完全に削除するnotを本当に好むか、またはもっと抜本的なことをしたいと思います。しかし、私は完全に立ち往生しています。

私のチームの他の人々はコードを引き出し、pod repo Pushを実行できますが、自分のマシンからはできません。

ヘルプ/アドバイスをありがとう。

36
Dan Morrow

Xcode 10.1がインストールされている場合、_Xcode 10.0がXcodeのデフォルトバージョンとして設定されている場合でも、simctlからの出力は、特に可用性のために異なる形式になります。残りのフィールドは同じように見えますが、これだけではありません。このJSON呼び出しxcrun simctl list -jを見ることができます。また、Cocoapodsはまだラッパーをこの形式に更新していません。

temporary step-to-spetこの問題の修正プログラムを準備しました。それは私のために働いています。

ログでこの行を見つけます- ERROR | [iOS] unknown: Encountered an unknown error (Could not find aiossimulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least oneiossimulator listed or otherwise add one.

その下に次のような行が表示されます:/usr/local/lib/Ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb

  1. このファイルの名前をコピーして呼び出します:Sudo vi /usr/local/lib/Ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb
  2. Iを押します
  3. ファイルの終わりでSimulator.new(device, os_name, os_version)....で始まる行を見つけます.
  4. この行をSimulator.new(device, os_name, os_version) if device['availability'] == '(available)' || device['isAvailable'] == 'YES'に置き換えます
  5. :wqを押します
  6. pod trunk Push YourLibrary.podspecは動作するはずです。

何かが機能しない場合は、返信してください。

25
Pavlo Boiko

XCode 10.Xおよび11Betaの問題を解決した以下の手順を実行

  1. 須藤宝石更新ココアポッド

上記でシステムが機能しない場合は、以下の3つの手順に従ってください。確実に機能します

  1. Sudo gemアンインストールfourflusher
  2. Sudo gem install fourflusher
  3. 須藤宝石更新ココアポッド
48

Xcode 10.2ベータ版の実行後にこのエラーが発生しました。残念ながら、以前の回答ではエラーは消えませんでした。何が変わったのか正確にはわかりませんが、動作させるための回避策を見つけました。

  1. find.rb of fourflusherを見つけて、pod trunk Pushコマンドを実行した後、エラーの場所で確認できます。次のようなもの:/usr/local/lib/Ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb
  2. if device['availability'] == '(available)'の周りのファイルの最後に移動します
  3. そのすぐ下でos_nameos_versionが設定されていることを確認してください。上記のコメントを見ると、# Sample string: iOS 9.3iOS9.3に分割することが期待されています。私の場合、それらは空か何かでしたので、自分で設定しました。
  4. また、可用性をtrueに対してチェックします:|| device['isAvailable'] == true

最終的に、その部分は次のようになります。

if device['availability'] == '(available)' || device['isAvailable'] == true
  os_name = "iOS"
  os_version = "12.1"
  Simulator.new(device, os_name, os_version)
end

これはIS永続的な解決策ではありません!!! Xcode 10.2ベータ版で変更されたものがcocoapodsによって公式にサポートされるまで、それが今のところ動作するようになった方法です。

ベータをインストールしたことのないMacでxcrun simctl list -jを実行すると、com.Apple.CoreSimulator.SimRuntime.iOS-12-1iOS 12.1などのos名があります。

Xcode 10.2をインストールした後、com.Apple.CoreSimulator.SimRuntime.iOS-12-1が表示されますが、iOS 12.1が表示されません。 find.rbos_nameos_versionの値を見つけるために後者を使用したと仮定しています。これが私がそれらを自分で設定した理由です。

これが他の人に役立つことを願っています、幸運を!

14
Richard Chirino

Xcode11-betaをインストールした後、同じ問題が発生しました。

- ERROR | [iOS] unknown: Encountered an unknown error (Could not find aiossimulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least oneiossimulator listed or otherwise add one.) during validation.

次の手順に従って解決しました。

  1. FinderメニューでGo/Go to Folder...を選択します
  2. /usr/local/lib/Ruby/gemsに貼り付け
  3. {your gem version}/gems/fourflusher-{version}/lib/fourflusher/に移動します
  4. ターミナルを開く
  5. cd(cdおよびスペース)を入力します
  6. fourflusherフォルダー(find.rbファイルがあるフォルダー)をドラッグアンドドロップします
  7. Sudo vi find.rbと入力します
  8. パスワードを入力してください
  9. ファイルを編集できるようにするにはiと入力します
  10. device['availability'] == '(available)' || device['isAvailable'] == 'YES'が表示されるまでファイルを下にスクロールします
  11. この行に次を追加します。|| device['isAvailable'] == true
  12. 次のようになります。
devices.map do |device|
          if device['availability'] == '(available)' || device['isAvailable'] == 'YES' || device['isAvailable'] == true
            Simulator.new(device, os_name, os_version)
          end
        end
  1. :wqと入力して、ファイルを保存します
  2. .podspecファイルフォルダーに移動します
  3. pod lib lintを実行してリントするか、pod trunk Pushを実行してプッシュします

何か間違った入力をした場合、または最初からやり直したい場合は、ステップ1からすべてを開始する前に、fourflusherをアンインストールしてインストールする必要があります。

アンインストール:Sudo gem uninstall fourflusher

インストール:Sudo gem install fourflusher

6
Rebeloper

私は同じ問題を抱えていたので、すべてのgemを更新してくれました:Sudo gem update

1.7.1CocoaPodsを使用していましたが、1.7.2に更新しましたが、問題はなくなりました

Sudo gem install cocoapods 
2
Tai Le

私も$ gem insall cocoapodsを使用しようとしますが、cocoapodsのバージョンは依然として低バージョンです。

$ Sudo gem install -n /usr/local/bin cocoapods --pre 

そして、私のcocoapod --versionショーは1.7.1素晴らしいので、質問を修正します!

1
user10390875

Xcode 10.1、Xcode 10.2、およびCocoaPods 1.7.0.beta.3をMacにインストールしたときに、この問題を再現できました。 pod lib lint MyLibrary.podspecを実行すると、質問で述べたのと同じエラーメッセージが表示されました。

Sudo xcode-select -s /Path/To/Xcode10_1.appを実行して修正しました。/Path/To/Xcode10_1.appはXcode 10.1へのパスです。

最新のCocoaPodsバージョンを使用していることを確認するには、 bundler を試してください。次のコンテンツでGemfileを作成します。

source 'https://rubygems.org'
gem 'cocoapods', '1.7.0.beta.3'

その後、bundle install && bundle exec pod repo Push(または他のポッドアクション)を実行します。

0
Roman Podymov