2016-06-21 9 views
0

私はObjective-Cで書かれたa project on Githubをビルドしています。それはメーカーの詳細にMACアドレスを解決します。ルックアップテーブルは現在、実行時に解析されるテキストファイルmanuf.txt(Wiresharkプロジェクトから)として保存されていますが、これはコストがかかります。私はこれをビルド時にアーカイブされたオブジェクトにコンパイルし、その代わりにロードする方が好きです。私は私ようなビルドフェーズ修正したいと思いますXcodeフレームワークプロジェクトに2つの新しいフェーズを追加する

  1. manuf.txtを解析し、簡単なコンパイラ
  2. 実行コンパイラを構築し、アーカイブされたオブジェクトを出力
  3. 枠組みを構築しコピーアーカイブされたオブジェクトをフレームワークに入れる

私は達成方法に関する知恵を探していますXcodeとしてXcode v7.3を使用するステップ1と2は、Copy FilesフェーズまたはRun Scriptフェーズのみを提供します。同様の目標を達成している他のプロジェクトの例は刺激的です。

答えて

1

私は、あなたが求めていることは可能だとは思っているが、扱いにくいと思う。その理由は、たくさんのクラスファイルを作成して、それをプロジェクトに動的に追加する必要があるからです。

まず、実行スクリプトフェーズを使用して、コマンドラインからさまざまなツールを実行してファイルを解析し、そこからいくつかのクラスファイルを生成する必要があります。私は様々なテンプレートエンジンを調べることをお勧めします。たとえば、appledocはAPIドキュメンテーションファイルを生成するためにヒシャシテンプレートを使用します。同じテクニックを使用して、ヘッダーファイルと実装ファイルを生成することもできます。

次に、アーカイブされたオブジェクトを生成するのではなく、フレームワークにインポートしようとしています。生のソースコードを生成してプロジェクトに追加し、フレームワークにコンパイルするほうが良いと思います。おそらく長期的にはもっと簡単だろう。

生成されたコードを自動的にインクルードするには、Xcodeグループではなくプロジェクトへのフォルダ参照を追加することを実際に試したことがありません。フォルダ参照は、[ファイルを追加する]ダイアログのオプションです。

フォルダ参照はディレクトリを参照し、自動的にそのディレクトリの内容全体をプロジェクトに追加します。そのため、ソースコードを生成したディレクトリを指し示すことができます。これは、プロジェクトを操作したり、既存のフレームワークに物を注入しようとするよりはるかに良い選択肢です。

0

実行時にファイルを解析することをお勧めします。起動後、既存の出力を探したり、それ以外の場合は一度解析したりすることができます。

しかし、私はObjective-Cloudでも同様のことをしなければなりません。私は単に実行スクリプトのビルド段階を追加し、コンパイラの呼び出しをそれに入れました。

関連する問題