Finder の「圧縮」メニュー項目と同じ形式の zip ファイルを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/107903

  •  01-07-2019
  •  | 
  •  

質問

Mac OS X では、Finder からいくつかのファイルを選択し、コンテキスト メニューまたは [ファイル] メニューから [圧縮] を選択することで、zip アーカイブを作成できます。残念ながら、結果のファイルは、によって作成されたアーカイブと同一ではありません。 zip コマンド (デフォルトのオプションを使用)。

この区別は、Apple が運営する少なくとも 1 つのサービスにとって重要であり、そのサービスは、 zip 指示。アーカイブを手動で作成する必要があるため、リリース ビルド プロセスを完全に自動化することができません。

シェル スクリプト内で正しい形式の zip アーカイブを作成するにはどうすればよいですか?

編集:ずっと前にこの質問を書いて以来、私は次のことを理解しました。 ditto そして zip シンボリックリンクの処理方法は次のとおりです。アプリバンドル内のコード署名にはシンボリックリンクが含まれているため、通常のファイルとして保存するのではなく、リンクとして保存する必要があります。 ditto これはデフォルトで行われますが、 zip しません(オプション -y が必要です)。

役に立ちましたか?

解決

同様のコマンドライン ツールを次のように使用します。

ditto -ck --rsrc --sequesterRsrc folder file.zip

を参照してください。 マニュアルページも同様 多くのための。

他のヒント

iPhone App Store ビルドを作成する Ruby スクリプトがありますが、生成された zip は iTunes Connect によって受け入れられません。Finderの「圧縮」機能を使えば受け入れられました。

millenomi の答えは私にとっては近いものでしたが、このコマンドが最終的に機能したものです。iTunes Connect は私のビルドを受け入れ、アプリも承認され、問題なくダウンロードできるため、テストされました。

ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip

男性も同様に次のように述べています。

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress functionality.

注意 --keepParent

ヒントは「自動化」タグにあります。

Automator.app で「アーカイブの作成」アクションを使用するアクションを作成し、コマンドラインから呼び出します (「aumater」を参照)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top