34

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

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

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

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

4

4 に答える 4

20

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

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

ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip
于 2010-03-18T20:38:44.433 に答える
18

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

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

詳細については、同上 man ページを参照してください。

于 2008-09-20T11:27:28.717 に答える
11

男の同上は次のように述べています。

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

注意 --keepParent

于 2010-11-20T03:03:12.657 に答える
1

手がかりはタグ「自動化」にあります。

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

于 2008-09-20T11:17:45.340 に答える