メインコンテンツに移動

バイナリー配布

FSWATCH

ソフトウェアを作成し,他人に配布する場合,コンパイル済みバイナリーを配布すれば,ユーザーはクリックするだけで利用できる.それは
   ***.pkg
というファイル形式になる.もう少し大規模なソフトであれば,それをディスクイメージ
   ***.dmg
にしても良いかもしれない.

  1. XCodeで作成した場合:XCodeを用いて作成できる.
  2. その他のソフトの場合
    1. 例えばLinux用のソフトなど,適当な場所(普通は/usr/local)にインストールすることになるだろう.そこで,make install する前に,/usr/local フォルダーの監視ソフトfswatchを実行する.
      fswatch -x /usr/local > files.log &
    2. そして make install を実行すると,/usr/local への操作が files.log に記録される.fswatch は kill によって終了させればOK
      kill -9 %1
    3. fswatch_analyze.sh は, fswatch の記録を分析し,必要なファイルを指定したフォルダーにコピーする.すなわち
      fswatch_analyze.sh -c binary files.log

      これで,files.log でCreateしたと記録されているファイルのコピーが,binary フォルダーにコピーされる.

    4. 最後にパッケージを作成する.パッケージ管理ソフトに登録するべき,そのソフトの名称,パッケージファイルの名前,コピーしたフォルダーが必要である.
      pkgbuild --identifier my_software_name --root binary  my_software_version-osx.pkg

fswatch + pkgbuild はなんともお手軽にパッケージを作成できるが,中のライブラリーが他のライブラリーに依存しているのか的なことはチェックしていない.

あ,otool で検定することもできるのか・・・そいつはいい考えだけど,まだ書いてねっす♪

MacOS豚リンゴ

当面の間, IntelとM1の両方に対応したライブラリーを作る必要がある.これはlipo油というコマンドをAppleが用意しているので,それで豚(FAT)ライブラリーにすれば良い.が,しかし,たくさんあって面倒なのでスクリプトを使う.

ライブラリーファイルの一覧 | fatty_apple.sh アーキテクチャ1フォルダ アーキテクチャ2フォルダ 豚小屋

によって,以下の作業が行われる

  • 豚小屋フォルダが空でなければ,停止
  • アーキテクチャ1フォルダ/入力ファイル名 がNon-Fatファイルであれば,アーキテクチャ名をゲット
  • アーキテクチャ2フォルダ/入力ファイル名 がNon-Fatファイルであれば,アーキテクチャ名をゲット
  • 2つのライブラリ(dylibとかaとか. 多分実行ファイルもできる)にアーキテクチャ名を追加して豚にし,豚小屋にぶっこむ
File attachments
添付 サイズ
MacOS豚リンゴ 850 バイト