アプリケーションでココア静的ライブラリを使用しました。ライブラリをコンパイルすると、次のエラーが発生しました。
Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1
どうすれば修正できますか?
選択されていない場合は、[実行時]チェックボックスをクリックします。
キーチェーンへのアクセスを拒否し、それを解決するには、キーチェーンを開く必要があるため、この問題が発生しました
「派生データ」を削除するとうまくいきました。
Xcodeで[ファイル]> [ワークスペースの設定]に移動し、[派生データファイルのパス]の横にある矢印をクリックして、[派生データ]フォルダーをゴミ箱に移動します。
シェルスクリプトを実行しているようですが、特定のファイルが見つかりません。スクリプトを実行している場合は、Target -> Build-Phases -> RunScript
を見てください。
ビルド出力(ナビゲーターパネル)でスクリプトが実行されているかどうかを確認できます。スクリプトが何か間違っている場合、ビルドフェーズは停止します。
ビルドフォルダー(Cmd + Shift + Alt + K)のクリーニングはうまくいきました
1)ポッドフォルダーと.xcworkspaceファイルを削除します2)ターミナルでフォルダーを開きます3)「ポッドインストール」と入力します
私にとっては、証明書の有効期限が切れています。新しい証明書を作成しました。
.aライブラリをxcodeプロジェクトに追加しましたか? (プロジェクト->ビルドフェーズ->バイナリをライブラリにリンク->「+」をクリック->「その他を追加」をクリック->ライブラリを選択)
そして、おそらくライブラリはシミュレータと互換性がありません、iDevice(シミュレータではなく)向けにコンパイルしようとしましたか?
(私はすでに2番目の問題と戦っています、シミュレータでは動作しないライブラリがありますが、実際のデバイスではコンパイルされます...)
Xcode(7)を再起動してみましたが、何もしませんでした(スイッチのオフとオンを切り替えてみましたか?私のiOS開発の:-))。その後、ボックスを再起動してみましたが、うまくいきました。
私の場合、ある場所から別の場所にファイルをコピーするときにスクリプトが失敗していました。 Finderが特定のフォルダーに対する書き込み権をねじ込んでいることに関連しているのではないかと思います。
私にとってこのエラーは、ソースツリーからコードをプルするときにバージョン番号を1から1.0に、ビルド番号を6から1.1に変更したために発生していました。私はそれを元に戻し、ビルド番号を6から7に変更しましたが、うまくいきました。
私は上記のすべてを行い、問題に1時間を費やしました。
上記をすべて試し、Xcodeを再起動しました。
最後に、コンピューターを再起動し、すべてが再び正常に動作するようになりました!
スクリプトをファイルに入れて、コマンドラインの最後で2>/dev/nullを指定してそのファイルを実行するだけです!
このように、コマンドに問題がある場合、xcodeビルドを停止しません
私の場合、接続されたiphoneからアプリの以前のコピーをアンインストールするコマンドだけを実行していたため、iphoneがない場合はエラーが発生する可能性がありました。解決するには:
$ mobiledevice uninstall_app com.my.app 2>/dev/null
私の場合、パスにスクリプトが失敗するスペースがありました。$PROJECT_DIR
や$TARGET_BUILD_DIR
などの変数を使用している場合は、それぞれ"$PROJECT_DIR"
または"$TARGET_BUILD_DIR"
を置き換えます。引用符を追加した後、スクリプトは正常に実行されました。
私がやったことをリストします私にとってうまくいかなかったそして最後にやったこと
まず、インストール時にのみスクリプトを実行するという受け入れられた回答が機能しませんでした。
派生データの削除は機能しませんでした。
うまくいったこと:
ビルドフェーズに新しいビルドフェーズを追加しました
新しいファイルコピーフェーズ
選択したフレームワークをドロップターゲットにドラッグアンドドロップします
「宛先」をフレームワークに設定します
Kevin Le's Medium post によるクレジット
そのオプションのチェックを外したくない場合(たとえばココアポッドを使用)、問題は証明書/キーにある可能性があります。
Xcode(またはコマンドラインツールなど、使用しているツール)は、キーチェーンの証明書/キーを使用できる必要があります。このためにキーチェーンを開き、使用する証明書を見つけて(通常login
キーチェーン、My Certificates
で)、キーを右クリックして、Get Info
を選択し、Access Control
タブをクリックして、リストにアプリを追加します。
これが機能しない場合は、キーチェーンのロックを解除してみてください。
別のオプションは、特定のアプリの代わりにすべてのアプリケーションにこのアイテムへのアクセスを許可するを選択するか、証明書/キーをそのMac上のすべてのユーザーアカウント間で共有されるSystem
キーチェーンに移動することです。
また、証明書の有効期限が切れていないことを確認してください。
私のために働いた唯一のもの:
1)CleanMyMacで派生データを削除する:System Junk-> Xcode Junk-> Xcode Derived Data
2)次に、Xcode:製品->クリーン