web-dev-qa-db-ja.com

MacOS High Sierra Xcodeでのコード署名エラー - リソースフォーク、Finder情報、または同様のデトリタスは許可されていません

すでに試しました: macOS Sierra、Xcode 8でコード署名エラー /

エラーを示す画像を見てください enter image description here

CodeSign /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app
    cd "/Volumes/Development/Project/Top Best Games/19. Lets Flow/35/let's FLOW - source/proj.ios_mac"
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Distribution: New Free Games (2CHN583K4J)"
Provisioning Profile: "Super Flow Flipp AppStore"
                      (c6c30d2a-1025-4a23-8d12-1863ff684a05)

    /usr/bin/codesign --force --sign E48B98966150110E55EAA9B149F731901A41B37F --entitlements /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Intermediates/Flow.build/Debug-iphoneos/Super\ Flow\ Flip.build/Super\ Flow\ Flip.app.xcent --timestamp=none /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app

/Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super Flow Flip.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

Code Signセクションで、プロファイルと証明書を選択できるようにしましたが、それでもエラーが発生します。 enter image description here

enter image description here

この問題を解決するには?

223
iPhoneProcessor

解決策1:

アップルデベロッパウェブサイト上の問題に対する回答 ここ

ターミナルで以下のコマンドを実行します。最初のgotoプロジェクトのルートフォルダ

 xattr -cr <path_to_app_bundle>

Xcodeを消去して再構築します。乾杯

解決策2:

この問題を解決するには、Finder情報を含むファイルを見つけます。

ターミナルで、プロジェクトルートディレクトリに移動して実行します。

ls -alR@ . > kundapura.txt

これにより、現在のディレクトリにkundapura.txtが作成されます。今com.Apple.FinderInfoを検索し、すべてのファイルのこの属性をクリアします。あなたはこれのようにそれをすることができます

xattr -c <filename>

例:xattr -c guru.png

すべてクリアすると、コード署名が機能します。 Xcodeを消去して再構築します。乾杯

解決策3: Mark McCorkle's Answerに触発された

ターミナルで、プロジェクトのルートディレクトリに移動し、1つずつコマンドを実行します

  find . -type f -name '*.jpeg' -exec xattr -c {} \;
  find . -type f -name '*.jpg' -exec xattr -c {} \;
  find . -type f -name '*.png' -exec xattr -c {} \;
  find . -type f -name '*.json' -exec xattr -c {} \;

Xcodeを消去して再構築します。完了しました。

478
Guru

エラーはあなたのイメージファイルの中の属性からです。これは私たちのグラフィックデザイナーが属性を持ったフォトショップから画像を保存していたためです。

これはあなたのpngファイルをすべて見つけてそれらの属性を削除する簡単なコマンドです。端末からプロジェクトのルートディレクトリでこれを実行します。清掃して再構築します。問題が解決しました。

find . -type f -name '*.png' -exec xattr -c {} \;
151
Mark McCorkle

アプリのコード署名時にこのエラーが発生した場合

リソースフォーク、Finder情報、または同様のデトリタスは使用できませんコマンド/ usr/bin/codesignが終了コード1で失敗しました

プロジェクトのルートフォルダに移動して実行します。

find . | xargs -0 xattr -c

これにより、すべてのファイルの属性が消去されます。

Sierraでは、署名されたバンドルに含めることができるものに関する規則が厳しくなり、リソースフォークはもう許可されません。 AppleScriptは情報をリソースフォークに永久に保存してきましたが、その情報は長い間使われていませんでした。 Sierraでは、スクリプトを保存すると、このリソースフォーク情報は保存されなくなります。

つまり、Sierraより前のバージョンで最後に保存されたスクリプトを共同署名することはできません。 Sierraにサインインするには、Sierraに保存する必要があります。

影響を受ける可能性が高いのは、他のスクリプトを自分のスクリプト内にバンドルしている人です(cordova?)。すべての埋め込みスクリプトがSierraの下で保存されるまで、彼らはコンテナスクリプトに署名することはできません。

更新:

これもうまくいくようです:

xattr -rc .

不十分な権限エラーがある場合は、Sudoを追加してみてください。Sudo xattr -rc .

83
Arnold Roa

この問題に対する公式のAppleの回答は テクニカルQ&A QA1940 にあります。

これは、iOS 10、macOS Sierra、watchOS 3、およびtvOS 10で導入されたセキュリティ強化の変更です。

コード署名によって、アプリケーションバンドル内のファイルがリソースフォークやFinder情報を含む拡張属性を持つことができなくなりました。

どのファイルがこのエラーの原因であるかを確認するには、ターミナルで次のコマンドを実行してください。xattr -lr <path_to_app_bundle>

Xattrコマンドを使用して、アプリケーションバンドルからすべての拡張属性を削除することもできます。xattr -cr <path_to_app_bundle>

<path_to_app_bundle>はあなたのXcodeプロジェクトのディレクトリに置き換えることができます。例えば~/Development/MyProject

21
comrade

ソースファイルの属性を処理する最も簡単な方法は、Xcodeがアーカイブをcodeignを実行する前に消去することです。これをする:

  1. XCodeでターゲットを選択してください
  2. [ビルドフェーズ]タブを選択します
  3. +記号を押す
  4. 新しいスクリプト実行フェーズの選択
  5. スクリプトに次のように入力します。

    xattr -cr〜/ライブラリ/ Developer/Xcode/DerivedData ||エコークリア

今あなたがあなたの目標を構築するとき、それは壊れたコードサインを持っているであろうどんな属性でもクリアします。この段階でクリアすることで、あなたのソースコード/プロジェクトディレクトリを変更する必要はありません。

スクリプトの "|| echo Clear"部分は、xattrエラーが発生してもプロジェクトのビルドが続行されることを保証します。

この方法は、コードリポジトリでDropBoxなどの属性を追加するプログラムを使用する場合に適しています。ソースプロジェクトは変更されず、構築されたアーカイブのみが変更されるためです。

DerivedDataディレクトリと一致するようにパスを変更する必要があるかもしれません - このパスはcodesignエラーの隣に表示されます。

xattr codesign xcode fix

18
A.Badger

次のコマンドを使いました。端末ウィンドウを使用してください。プロジェクトに移動して以下を実行します。

xattr -rc .
15
Ram G.

ファイルの消去についてはすべて問題ありませんが、複数のプロジェクトでは面倒です。

グラフィックアプリは、(古いバージョンのphotoshopのように)外部ファイルに古い方法で追加情報(現在はメタデータと呼んでいます..)を書くか、または古いOSXから来たようなファイルです。

たとえば、フォルダを解凍すると、 "com.Apple.ResourceFork"および "com.Apple.FinderInfo"になります。

Xcode 8はそれをビルドに追加することを拒否します( "git --add。"を使ってプロジェクトに追加したのかもしれません)。端末で再帰的に見つけて削除することはできますが、面倒なこともあります。

私はそれを削除するために小さな無料のユーティリティを書いた..それが役立つことを願っています..

https://iTunes.Apple.com/us/app/cleandetritus/id1161108431?ls=1&mt=12

15
ingconti

簡単な解決策: -

私のやり方 [私のために働いて]

ステップ1: - このフォルダに移動します - あなたのFinderプレスオプションから移動 - >フォルダに移動

次に、この例のようにプロジェクトのパスを入力します。 - Library/Developer/Xcode/DerivedData/yourprojectname/Build/Products/Debug-iphoneos

これで、利用可能なファイルのリストがポップアップ表示されたウィンドウが表示されます。そこに、yourApp.appファイルがあります[ステップ2を待つだけで何もしないでください]。

ステップ2: - 新しいターミナルを開いてcdと入力し、ステップ1 yourApp.appをターミナルにドラッグするだけで、アプリのパスが表示されます。次にenterボタンを押します。

ステップ3: - 今、このコマンドを入力してください**

xattr -rc.

"。"(ドット)をお見逃しなく。エンターボタンを押してください。

それはそれです、あなたのXcodeプロジェクトに行き、きれいにして再度実行してください。

10
Abdu

MacOSターゲットに追加されたすべての新しいphotoshopで作成されたPNGの拡張属性を取り除かずにアプリを開発しようとしている人(私のように)では、ユーザー定義のビルド設定を追加して一時的にコード署名を無効にできます。

CODE_SIGNING_ALLOWED = No 

明らかに、アプリを配布している人はこの問題に対処する必要がありますが、これは私のようにSierraでコード署名を省略することが必ずしも簡単ではなかったケースでの開発を可能にします。

RGriffithのコメントによると、カスタムビルド設定がどのように追加されるのかわからない人のためのスクリーンショットです。

enter image description here

enter image description here

10
Bobjt

----- bashの知識がないなどの理由で上記の解決策を適用できない場合。

SierraでiCloudドライブを有効にするとすぐに、この問題が発生しました。私のプロジェクトは、iCloudドライブと同期されたフォルダにありました。私はこれがそれらの追加の属性を追加するものであると思います。

一時的な解決策:

プロジェクトがあるフォルダのiCloudドライブを無効にします。

8
Fawkes

以下で説明するように、アプリバンドルフォルダを削除してアプリを再構築する必要があります。

私のアプリはと呼ばれています:

ターミナルウィンドウで、アプリケーションフォルダに移動します(例:cd/Users/username/Library/Developer/Xcode/DerivedData /)。

ターミナルウィンドウでアプリフォルダのコマンドを実行します。例:xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

クリーン>ビルド>実行.

これらを削除する「CleanDetritus」と呼ばれるMac Appstoreの無料アプリもあります。

4
velhala

この問題は昨日私に思いつきました。

(What's wrong) Finderで手動でファイルを置き換えて画像リソースを更新しましたが、このコンパイルエラーで失敗しました。

(What's right)この方法で画像を更新しないでください。その後、Xcodeで画像を「xcassets」にドラッグしました。これ以上エラーは表示されません。

2
ManuQiao

問題は派生データにあります。派生データを消去してから、プロジェクトを消去してビルドしてください。 こちら リンクを確認してください。

2
Yogesh Dalavi

私の問題は、コードを変更して再度実行すると、エラーが再表示されることです。それから、コードのコンパイル/実行のたびにコマンドを自動的に実行するための解決策を見つけます。

@ rich-ableのおかげで、私は "Run Script"を発見しました。それから私はコマンド "xattr -cr"を入れました。現場で。

XCODE Solution

1
Andrey

git を使用している場合は、最も簡単な解決方法があります。試してください:

$ git stash
$ git stash pop

Gitはファイルのメタデータを保存しません、上記はそれをすべて取り除きます。

1
emp

私も同じ問題に直面しています。Macbookを再起動するだけで解決します。

0
Irfan

私の問題は、約1年前にcordovaを使用してアプリを作成したことですが、新しいバージョンのxcodeとは互換性がなかったので、単にcordova build iosを使用したところ、再び機能しました。

0
Frederik Witte

Xattrコマンドがうまくいかない場合は、XCode 9のバグが原因である可能性があります。Xcodeから影響を受けるファイルを含むリソースフォルダー(私の場合は.xcassets)を削除してから再度追加してみましょう。 (xattr -lrコマンドで以前に影響を受けたファイルはどれですか?)

0
Joe Aspara

最善の解決策の1つは、端末タイプに移動するこれです

xattr -cr "Full path of your project"

あなたの右クリックのフルパスを見つけるためにXcodeプロジェクト - >情報を見る - >パスをコピーしてと置き換えてください。それから以下のコマンドを入力してください

xattr -cr "Full path of your project"

きれいにして造り終わった。

0
Rajesh

ターミナルを開いてこのコマンドを実行してください。

xattr -cr ".appファイルへのパス"

0
Idrees Ashraf

DerivedDataの下のフォルダーにcolor tagを追加すると、デバイスでデバッグするときに上記のエラーが発生することがわかりました。

color Tagを削除してこのエラーを修正してください。

enter image description here

0
JerryZhou