Sierraでアプリケーションビルドが失敗する場合の対処法

Product :4D - 4D Server
4D : v15xx
OS : Mac OS X 10.12.2

Sierraでcodesignの仕様が変更になり、アプリケーションビルドで署名オプションを付けるとビルドに失敗します。

そこで、ターミナルからcodesignを実行してみたところ
" resource fork, finder information, or similar detritus not allowed"
というエラーが発生するだめらしいということが判明し、いろいろ調べたところ、リソースフォークがあると署名できないという仕様の変更になったということがわかりました。

で、4D Volume Desktopを開いてls -l@で詳細にみてみると、なぜかほとんどのファイルにリソースフォークが存在していました。

そこで、

xattr -c -r “4D Volume Desktop.app”

といれてリソースフォークを全て削除すると、無事にビルドが完了しました。

以上、報告です。

ACI0096253 で開発部に報告しました。

1月6日に修正されたACI0095892と同じかもしれません。

v16 ベータ版(205369以降)は対応済みですが,v15は未対応のようです。

http://bugs.4d.fr/fixedbugslist?branch=16
http://bugs.4d.fr/fixedbugslist?branch=15

開発部からの報告によると,

ダウンロードしたVolume Desktopにcom.apple.quarantineの拡張属性があるのは事実ですが,

ls -l@ /Applications/4D\ Volume\ Desktop.app
total 0
drwxrwxr-x@ 11 miyako admin 374 1 7 12:30 Contents
com.apple.quarantine 57

日本語版は57,他言語は22

それ自体はコード署名を阻むものではなく,10.12.2で問題なく署名できた,とのことでした。

https://developer.apple.com/library/content/qa/qa1940/_index.html

何か別の原因があるのかもしれません。

ふ〜む、ではインストール時等の操作でファインダの付加情報でも紛れ込んだのかもしれませんね。

関連して「Resourcesフォルダーにファイルがあると署名に失敗する」ACI0096249という報告がありました。

このhttp://forums.4d.fr/Post/FR/19132617/2/19156465#19156465スレッド>で言及がありましたが,Resourcesフォルダー内にインターネットからダウンロードした素材(画像ファイルなど)が存在する場合,xattr(このファイルは…に…からダウンロードされました)がついてしまうことが原因で署名に失敗することがあるようです。