FSWATCH
ソフトウェアを作成し,他人に配布する場合,コンパイル済みバイナリーを配布すれば,ユーザーはクリックするだけで利用できる.それは
***.pkg
というファイル形式になる.もう少し大規模なソフトであれば,それをディスクイメージ
***.dmg
にしても良いかもしれない.
- XCodeで作成した場合:XCodeを用いて作成できる.
- その他のソフトの場合
-
例えばLinux用のソフトなど,適当な場所(普通は/usr/local)にインストールすることになるだろう.そこで,make install する前に,/usr/local フォルダーの監視ソフトfswatchを実行する.
fswatch -x /usr/local > files.log &
-
そして make install を実行すると,/usr/local への操作が files.log に記録される.fswatch は kill によって終了させればOK
kill -9 %1
-
fswatch_analyze.sh は, fswatch の記録を分析し,必要なファイルを指定したフォルダーにコピーする.すなわち
fswatch_analyze.sh -c binary files.log
これで,files.log でCreateしたと記録されているファイルのコピーが,binary フォルダーにコピーされる.
-
最後にパッケージを作成する.パッケージ管理ソフトに登録するべき,そのソフトの名称,パッケージファイルの名前,コピーしたフォルダーが必要である.
pkgbuild --identifier my_software_name --root binary my_software_version-osx.pkg
-
fswatch + pkgbuild はなんともお手軽にパッケージを作成できるが,中のライブラリーが他のライブラリーに依存しているのか的なことはチェックしていない.
あ,otool で検定することもできるのか・・・そいつはいい考えだけど,まだ書いてねっす♪
MacOS豚リンゴ
当面の間, IntelとM1/M2/M3/M4の両方に対応したライブラリーを作る必要がある.これはlipo油というコマンドをAppleが用意しているので,それで豚(FAT)ライブラリーにすれば良い.が,しかし,たくさんあって面倒なのでスクリプトを使う.
ライブラリーファイルの一覧 | fatty_apple.sh アーキテクチャ1フォルダ アーキテクチャ2フォルダ 豚小屋
によって,以下の作業が行われる
- 豚小屋フォルダが空でなければ,停止
- アーキテクチャ1フォルダ/入力ファイル名 がNon-Fatファイルであれば,アーキテクチャ名をゲット
- アーキテクチャ2フォルダ/入力ファイル名 がNon-Fatファイルであれば,アーキテクチャ名をゲット
- 2つのライブラリ(dylibとかaとか. 多分実行ファイルもできる)にアーキテクチャ名を追加して豚にし,豚小屋にぶっこむ
2020年に初版を作成して以来, 久しぶりに追加機能をつけた.
- アーキテクチャ1フォルダに色々なファイルがあり,アーキテクチャ2フォルダに色々なファイルがあるとする
fatty_apple.sh アーキテクチャ1フォルダ アーキテクチャ2フォルダ
- アーキテクチャ1フォルダーのファイルを検索し,ビルドした実行ファイル, ダイナミックライブラリ.dylib, 静的ライブラリ.aを見つけた場合に アーキテクチャ2フォルダーで対応するファイルを探し
- 豚ファイルを作成し,アーキテクチャ1フォルダーをブタに変更する
- じゃけん,アーキテクチャ1フォルダーでパッケージ作ったらそれでよかとよ♪
添付 | サイズ |
---|---|
MacOS豚リンゴ | 850 バイト |
MacOS豚リンゴ(新型) | 1.62 KB |