SSブログ

macOS sidecarを使ってみた。 [MacOSX]

macを持っていて、iPadを持っているので、Sidecarを使わないわけにはいかないでしょう、と思っていましたが、使わずに幾年月。Catalinaに変えてから数ヶ月経ちましたが、Catalina自体の評判は良くないみたいだ。確かに大した機能も追加されないで、不具合だけが付いてきてしまう状態ではそうなるよね。

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

macOS CatalinaはUSBメモリにインストールできない。 [MacOSX]

mscOSをUSBメモリに入れようと頑張ったんだけどダメだった話。

前のバージョンのMojaveの時(?)はUSBメモリにインストールできたんだけど、Catalinaは不可になったようです。終わり。

それだけじゃ報われないので少し経緯を。macOSとUSBメモリでググると、インストールメディアを作ることしか出てこないので、そのまま普通にOSをインストールするケースが見られなかったのでしんどかった。基本的に自分でやるしかなかった。できるかどうかもわからなかったが、前にやったことがあったのでできると思っていた。

本当はUSBメモリからOSブートできていたものをアップグレードしようと思っていたんだけど、32GBではそれができなかった。64GBだったらできていたかもしれんな…。でも、Catalinaになってからじゃ無理かも。

32GBじゃクリーンインストールでもダメで、128GBで入れてもダメだった経緯はこちら。

https://miff.blog.ss-blog.jp/2020-02-09-1
https://miff.blog.ss-blog.jp/2020-02-10-1

どうしてもできなかった。Command + Rでブートしてインストールは完了するものの、ブートができない。ブートに散々待たされて、再起動を繰り返す感じ。これはだめだなと思った。

SSDが余っていたので、USBケースに入れてクリーンインストールしてみた。Catalinaが普通に動いているところからインストールはできなくて、Command + Rでブートしてインストールすると問題なく入れることができた。ブートもきちんとしてUSBメモリだけがダメなんだと判明したのでした。


なので一応Catalinaは外部メディアでブートできるんだけど、USBメモリは不可であるということが判明しました。というか、今まではできたのにそれを制限するとかAppleも了見が狭い。というか128GBのメモリが無駄になっちゃったなぁ…。何か良い用途があればいいんだけど、その容量を活かせる事ってのもあんまりないんだよね。

インストールメディアを作るにしても、32GBのもので足りるしそんなにインストールしないしね。というか、一般的にそんなに何度もインストールする人っていないんじゃないかと思うのだけれど、なぜかググるとたくさん出てくるんだよね。意味わかんない。Command + Rでブートすれば大体は入れられるから、Windowsみたいにインストールメディアが必須というわけではないと思うのだけれど。

SSDにインストールしたんだけど、USB3.0のUSBケースにType-Cのコンバーターをかませていました。それでも遅い感じはしませんでした。SSDはCrucialの2.5inchの普通のもので、もちろんSATA仕様なのでそんなに速くないし、ケースもヨドバシでUSB3.0対応で一番安いものを使ったので、いたって普通のスペックですが速度的には問題なしでした。というか、自分が作ったフリーソフトの動作確認しかしていないので、そのソフトとブラウザぐらいしか使っていないけどね。まぁヘビーに使うのだったら、NVMe仕様のSSDを使えばノンストレスじゃないかとは思う。

パソコン自作をしていると余ったパーツが役に立つってのはわりと「あるある」だと思いますが、余らせたのはPS4の増設のためだったりするので、パソコン自作は関係ないのでした。というか、パソコンは最近OSを気軽に入れたりしにくくなっているので、トラブルもないので入れたままですね。

コメント(0) 
共通テーマ:パソコン・インターネット

macOS CatalinaをUSBメモリに入れてみようとした。2 [MacOSX]

前回はUSBメモリにmacOSを入れようとした。

https://support.apple.com/ja-jp/HT201475

スクリーンショット

とりあえずこういう風に途中で止まる。データは入っているのだけれど、USBメモリの中身をいじくってもうまくいかなかった。

スクリーンショット

どうやら64GBでは足りないらしかった。まぁ今時のOSだからインストールメディアというかデータも入れるとなると少ないと言わざるを得ない。


新しい128GBのメモリを新調したのだけれど、GUIDパーティションテーブルじゃないと言われて入れられなかった。ディスクユーティリティで変換しろというのだが、消去の選択肢にはGUIDにする選択肢はない。AppleFSに変換しようとしても、GUIDじゃないのでAPFSに変換できないと出る。

no_mbr.jpg

スクリーンショット.png


これはWindows7とかだとGUIDのUSBメモリが読めない(HDDとかだと読めるっぽいが)という罠があったため、Appleが途中でUSBメモリをGUIDに変えないようにしたのだろう。前はUSBメモリも容赦無くMBRからGUIDに変えていたのだが、多分文句が来たのだろう。まぁWindows7の写真プリント端末とかで使えなくなっていたから当然の対策だろう。というかGUIDからMBRに変換する機能をつければいいだけの話なのだが、それはAppleの技術者のレベルということなんだろう。

ただmacでディスクユーティリティでUSBメモリをGUIDに変えられないとすると、他のOSで変換するかしないといけなくなる。macOSでコマンドラインとかで変換できなかったかな? あ〜ディスクユーティリティでもGUIDにフォーマットできますね。「表示>すべてのデバイスを表示」でデバイスのルートをいじることができるのでGUIDにもMBRにも出来そうだ。というか、できるんだったら隠しておくなよなApple。不案内この上ない。

スクリーンショット

https://discussionsjapan.apple.com/thread/110206622

で入れようとするとまたこの画面が出てくる。これは容量が多くても少なくても出てくるようだ。

スクリーンショット


USBメモリの中のインストーラを動かしてみる。

スクリーンショット

スクリーンショット

ん〜また同じエラーが出る。こうなったら全部のdmgとかの中身を実行してやる。

実行できるファイルをみんな動かしてみたけれど、どうにもうまくいかない。結局、インストーラが「macOSを検証できません。」と出す限りはダメみたいだ。

この状態は、Mojaveから出ている状態らしく、どうにかならないのかとググっても解決策が出てこない。そもそもUSBメモリにはインストールできないのか、SSDでターゲットモードだとできるのか、クリーンインストールがダメなのか、何が悪いのか一向にわかりません。外部メディアにインストールできなくなりました、と言うなら分かるししょうがないと思うのだが、そういうアナウンスがあったという話は聞いていない。

ちょっと前にはUSBに入れることができたので、なぜ今度はできないのかわからない。前回は問題なくできたんだけど、どうやったのか覚えていないんだよなぁ。変わったのはCatalina上で動作させているかどうかぐらいだ。全く、Catalinaはろくなもんじゃないな…。新しい機能はほとんどないとされているOSだけど、やれることが狭まるとか話にならない。こういうところがクソAppleだと思ってしまう原因になるんだよね。ほんとひどい。

コメント(1) 
共通テーマ:パソコン・インターネット

macOS CatalinaをUSBメモリに入れてみようとした。 [MacOSX]

以前、USBメモリにmacOSに入れた。その時は32GBのメモリに入れられた。

https://miff.blog.ss-blog.jp/2019-09-14-1

だけどCatalinaになったら容量が足りないみたいだ。入れるときに容量が足りないとすぐに言えばいいものの、インストールがそこそこ進んでから足りないと言われる。なんかそういうの良くないよね。

何でUSBメモリにOSを入れようかとしているかというと、開発でまっさらな環境で動作確認をしたいからだ。そのためだけにそれほど金を払いたくはない気はする。




USBメモリに入らないので、値段がこなれていたら外付けSSDでもいいかと思って調べてみた。

でもまずはUSBメモリから。32GBじゃ入らないので、少し余裕を見て128GBで調べてみたら、2000円前後で売っていた。





Amazonは2000円以上が送料無料なので、無理して2000円を切る値段のものを選ぶ必要はないかも。
そんなに熱心に値段調査をしていたわけじゃないけど、大容量のUSBメモリも安くなったものだ。USBメモリの読み書き速度からするとUSB3ではなくてもあまり問題ないのだけれど、面倒くさいのでUSB3対応で揃えてみました。というか値段がそんなに変わらないからいいのかもしれない。

ただ当たり前なのだけれど、USB Type-A端子なのでType-Cコンバーターを噛ませないと、 MacBook Airでは付けられない。32GBのUSBメモリの時もコンバーターをかませていたのですが、縦に長くなって非常に引っかかりそうで嫌な感じであった。かと言って、Type-C端子のUSBメモリってのはそこそこ値が張るんだよね。




外付けSSDはどうかな。容量的に256GBくらいからなので、それ以上のを見てみる。



人気はあるみたいだけどQLCなのがちょっと問題がありそうだな。それとSSDにもSATA的なものとPCIe的なものがあり、安いのはおそらくSATA的な接続をしているんじゃないかと思われる。わかんねーけど、もっと高い製品だとNVMe的なものを使えるんじゃなかろうか。



安いのは安い。ただ恐らくはSATA接続の仕様で、M.2のようにPCIe接続のものじゃない可能性があり、わざわざSSDを買うという意味を考えれば、安い外付けSSDを買ってもあまりメリットがないのかもしれないですね。

それと大体がUSB Type-A接続なので、結局USBメモリと同じことになってしまう。USBメモリに比べて大きいだけ容量もデカくて値段も張る。速度はPS4でHDDから変える程度の効果しかない。

それだったら容量を気にしてSATA接続の2.5inchドライブをケースに入れて使った方がいいのかなと思ったりする。



これだとそこそこスピードは出そうだし、Type-C接続もできていいかもしれない。容量も大きいし将来性を考えれば悪いことはないだろう。ただ2000円で済むところを1万円近くかけてパフォーマンスを出そうとする価値があるかというところだ。OSを入れるんだから速い方がストレスがなくていいのだろうけど、確認のためだけだから普段使うのは内蔵SSDだから問題はないっちゃない。




あと考えたのはM.2のNVMe SSDをケースに入れてUSBでつなぐということだ。これなら後でパソコンで再利用できるから、潰しが効くなぁと思ったり。でも、それって使う流れが逆じゃね?というのは確かかもしれない。値段だけ確認しておこう。

まずケースは2000円台からある。安くても速度は出るのかな?



なんかちょっと怪しい感じがするw。


ineo,適切な防水性と耐衝撃性を備えた堅牢なM.2 NVMe SSD ケースを紹介し、十分で貴重なデータを保護します。 USB 3.1 Gen 2 10Gbps超高速で転送して、統合されたUSB-Cケーブルは行方不明のケーブルについて心配することなく、分類するのを助けるです。

『分類するのを助けるです』おもいっきし機械翻訳な日本語w。なぜか題名に「內」と中華フォントが出てくる。Amazonはこういうのが多いので怪しいよな。まぁドスパラとかでノンブランドのものを買うのとたいした違いはないんだろうけども。

ただ大体Type-Cケーブルが付いてくるので、mac的には使い良いような気がする。安い外付けSSDはType-Aがほとんどだからね。Micro USB3.0 Micro-Bの端子が本体側に付いていたりするので、逆側がType-Cのケーブルって見た感じ売ってないんだよね。あったら付け替えるんだけど、あまり一般的ではないらしい。というか、今時みんなどっち側もType-Cでいいじゃないか。


NVMeのSSDは500GBくらいでいいかな。





1万円以内で収まりそうなので、ケースも含めて1.5万円くらいで買えそうだ。完全にパッケージング化されたSSDを同額程度のものを買うのと比べてどちらがいいかなぁ。ケースのパフォーマンスが悪いとちょっと困るけど、自作パソコン的にはケースに入れて使うのも悪くないのかもしれない。

http://matope.hatenablog.com/entry/2019/05/03/071941

ここにわりと詳しく書いてある。状況は半年くらい経っているので少しは変わっているのだろうけど、大体のことは書かれている。



いろいろ迷ったけど、結局128GBのUSBメモリにすることにしました。昔なら間違いなく、NVMe SSD買ってケースに入れて使ったんだろうけど、世知辛い世の中で2000円の出費に落ち着けたのでした。何か他に使い道があればいいのだけれど、あくまで検証用の環境を作るだけだからしょうがない。それで商売するなら金かけるけど、全然そうじゃないからね〜。まぁ通販が来たらボチボチ使っていこうと思います。

コメント(1) 

Macでコンテナ仮想化をしたい。ができなさそう。 [MacOSX]

Docker for Macがコンテナ仮想化じゃなくて、ハイパーバイザー型の仮想化であることが判明して、DockerではmacOSのコンテナが立てられないんじゃないかと思っている。

https://miff.blog.ss-blog.jp/2020-01-21-2

macOSなのにmacOSのコンテナを使えないなんて酷すぎるんだけど、ちょっと見た感じではDocker for MacではLinuxのコンテナしかないように思えます。chrootから発展したコンテナ仮想化として考えると、Docker for Macはコンテナ仮想化では全くないと思われ。Docker=コンテナではないのです。LinuxがホストOSだったらそうなのかもしれないけど、多分WindowsとかのDockerも同様にハイパーバイザーなのでしょう。

いろいろ探したんだけど、これなんかはだいぶ違法というかグレーなことをしているのだろうし。
https://qiita.com/syu_chan_1005/items/084b3c0679c3b3940595
そういうことじゃないんだ。macOS上でmacOSのコンテナを動かしたいだけなんだ。なんでそんなこともできないんだろう。それとmacでコンテナと検索すると、APFSパーティションのことが出てきてしまい、コンテナ仮想化の話はほとんどない。


恐らくだけど、macはカーネルを差出したくなかったんじゃないかと思うんだよね。別にそれぐらい良いじゃないかと思うんだけど、わざわざHypervisor Frameworkなんて作るのはそういうことなんだろうと思う。分けるとはいえいろいろ共用される可能性があるので、変更のタイミングとかを気にしないといけないのは面倒くさいということなんだろう。

というか、Linuxなどを動かすという要望の方が多かったのかもね。新しいOSを入れることは他のメディアを入れればまだできるのだろうけど、それとは違うんだよなぁ。まぁそれでも良いけど、コンテナ仮想化ができればそれに越したことはない。macでデスクトップではない使い方をするコンテナではあまりニーズがないのかもしれない。




そういやコンテナ仮想化を知ったのは、Solarisで仮想化を使えないかという話で知ったのだった。最初はコンテナ?と思ったが、結局その頃流行り始めた仮想化の一つということで飲み込んだ。その時はあまり調べもしなかったんだけど、UNIX的な考え方をすれば、そういう方向性に行くよなと思ったりはした。

確かにchrootみたいに既存のディレクトリに制限をかけて、プロセスなども分離して、ポートなどを別に準備すればそれで良いわけだからね。ホスト型やハイパーバイザー型の仮想化に比べれば十分に負荷が小さい。だってカーネルは同じだからね。同じじゃないカーネルを動かすとかはできないけど、同じ環境を設定させるのであれば、全く同じフィジカルなハードウェアで動かせる方式は面倒がなくていい。

その頃も(Solaris10ができた頃)、高い機材を効率よく使うためにコンテナを使うことをクライアントから提案された。というか、クライアントの方がよく知ってんのかよというところだったが、仮想化も今ほど一般的になっていない時にやっていたんだから、IT業界ってのは新しい物好きというか、使える技術はものすごく使っていくというところはあると思う。

そもそもハイパーバイザーとかホストOSの仮想化だって、元々はVMwareとかでもエミュレーションみたいな用途から発展したみたいだったしね。それからCPUが仮想化をサポートするようになって、サーバではそれを使うのが普通になってきた。完全仮想化とか準仮想化とかあったけど、何がどうだったのか今でも正直よくわからない。今でもサーバレスがなんとかとやっているけど、結局何を使うかというところになるから、概念めいたところは仕事になっちゃうとあんまり関係なかったりする。


言いたいのはMacもUNIXを語るなら、コンテナ仮想化ぐらい実装しろってことですよね。まぁXServeとかかなりコケたプロダクトがあるくらいだから、クライアントOSとしては必要ないってことなのかな。

コメント(0) 
共通テーマ:パソコン・インターネット

Docker for MacでなんでUbuntuが動くのか? [MacOSX]

以前にDocker for Macを入れた際に、Ubuntuが動くのはなぜかと疑問に思っていました。chrootの発展形がコンテナ仮想化とするなら、Macのコンテナ上でLinuxが動くのは妙な話なんじゃないかと。

https://qiita.com/kirikunix/items/33414240b4cacee362da

ここではLinux同士を使っている場合に、ABIという仕組みがあるからある程度は大丈夫なんだよ、という説明でした。しかし、それではMacの説明がつかない。


下のコメント欄にその言及がありました。

https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment HyperKit という仮想化ツールでdockerホストとなるVMを作り、 そいつと /var/run/docker.sock を通してやり取りをする、という仕組みのようです。 macOSにABIを被せているわけではなく、Linuxを別個に立てているのですね


これだったらコンテナ仮想化じゃなくて、ハイパーバイザー型と大して違わないやん。ただchroot的なディレクトリの利用はしているかもしれないけど。でも、Mac上のUbuntuは60GBの大きさしかなかった気がするなぁ。Dockerはコンテナ仮想化という認識は変えないといけないかもしれない。


ここを直接読む。
https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment
うわ。最初の最初にすごいこと書いてあったw。

It also installs VirtualBox.


VirtualBox入っとるやんw。というかDockerを上にかぶせる意味あるん?
あ~Docker Toolboxの方なのか。Docker Desktopの前にあったやつみたい。

Docker Desktop uses HyperKit instead of Virtual Box. Hyperkit is a lightweight macOS virtualization solution built on top of Hypervisor.framework in macOS 10.10 Yosemite and higher.


やっぱハイパーバイザー使っとるわ。他のDockerはコンテナ仮想化かもしれないけど、for Macは純粋なコンテナ仮想化じゃないな。はじめはVirtualBoxを使う気になっていたけれど、DockerがHypervisorであれば使う意味があまりないんじゃないかと思ってきた。というか、macのコンテナを作ろうとしていたから、Linuxを入れるのを前提にしているんじゃどっち使ってもあんまり変わんないかもな。というか、慣れているVirtualBoxの方がいいのかも。

というかMacで開発しようと思ったら、コンテナを使えないとしたら既存の環境を汚すしかないのかとちょっと落胆。それが嫌だからコンテナを使おうと思っていたのに、Dockerのバカぁ。って、DockerでMacのコンテナ使えるかどうか調べてないですが…。

コメント(0) 
共通テーマ:パソコン・インターネット

やっとmacOS Catalinaにした。 [MacOSX]

macOS 10.15.2になってからmacOSをアップデートしました。二回もマイナーアップデートしたんだから、あらかた問題は解決されているはず。というか、ずっと前の状態を保つ意味もあまりないので、TimeMachineでバックアップを取って入れてみました。

始めに15分で終わると出ていたんだけど、最終的に終わったのがちょうど一時間後くらいでした。ダウンロードにも時間がかかっているので、一時間強というところでしょうか。結構時間がかかる。最近のアップデートはSSDを使っているので、割と時間がかからなかった印象がありますが、やっぱりOSのアップグレードはそこそこ時間がかかる。まぁ使っているソフトウェアの環境ってのは人によって違いますしね。

LinuxだとかだとOSをクリーンインストールして入れ直しちゃうところですよね。コンテナとかの仮想化でもOSの構築を自動化でやっている場合も多いみたいだし。だけどクライアントOSはそういうわけにはいかないよね。色々データがシステムの中に散らばっちゃってるし。




それとは別に今、ちょっとDocker for Macを入れようかどうか気にしている。VirtualBoxでUbuntuを入れようかとも思ったんだけど、せっかくMacを使っているのだから、そのまま使った方がパフォーマンスも下がらないだろうなと。というか、わりとコンテナじゃない仮想化ってHDDの書き込みにパワーを使ったりしてますしね。それとHDDの容量を最初から規定しないといけないことも多いし。

そういう意味からしてコンテナ仮想化は他人丼的な使い方をしなければ、仮想化としてお手軽かと思うね。ハイパーバイザー型の仮想化も悪いとは思わないけど、完全に本番動作を仮定していない限りは別にmacOSでいいじゃないかと思う。曲がりなりにもUNIXなんだしね。

https://docs.docker.com/docker-for-mac/install/

Docker Desktopって書いてあるけど、Desktopって書いてあるのが気になる。特にGUIは必要ないんだけどなぁ。どうせコンテナの操作はCUIでやるんだし、そこいらの操作はVirtualBoxっぽくGUIでいいと思うんだけど、見た感じそうはなっていない。まぁ仮想環境のセッティングがホストOSに依存する部分が大きいので、そこまで設定に苦労しないからかもしれないけど、GUIはGUIでCUIはCUIで分けたい気もする。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


ん?ubuntuとか書いてあるけど、macOSでubuntuのコンテナを動かすってどういうことだ?
ただ単にどのOSでもみんな同じこと書かれてんのかな? そもそもhello-worldってのは環境ってことなのかな?

とりあえず、docker run -it ubuntu bash やってみよ。
uname -a で見たら
# uname -a
Linux b24ee05811f8 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux


macじゃなくLinuxが走っていることはわかる。Ununtuかどうかはわからんけど…。というか、コンテナ仮想化はこういうことできるの? なんかコンテナというプロダクトとしての趣向が違わない? コンテナ仮想化がchrootの発展系として考えるなら、違うOSのコンテナなんて使えないはずなんだけど…。

なんか色々気になるけど、Ubuntuが動くということはわかったわ。にしてもコンテナっていつもrootで始めに入るんだけど、普通のLiunxを使うものとしては気持ち悪すぎる。結局、普通のユーザー作るんやろし。まぁそのうち細かくやっていこうと思います。とりあえずはここまで。




Catalinaを入れてまず気づいたのが、Dockに何か無理矢理入れられている。PodcastとAppleTVが割り込んでいる。どっちも使わなそうだけど一応見てみよう。PodcastとかiTunesとかに入れられていて懐かしいけど、しばらく使っていなかったな。ただコンテンツが貧弱すぎて聞く気にならない。Youtube見てた方がいいなという話になっちゃいそうだな。

TVってアプリケーションは、映画とかの映像をレンタルか買い切りで見ることができるようだ。他の入ったら見放題のサービスよりも割高感はある。正直、これに飛びつく人はあまりいないだろう。とりあえず、TVもPodcastもDockから除いた。いらん、こんなもん。


iPadもあるのでSidecarができそうだけど、あんまり好評とは言えないみたいだしなぁ。後でやるけど、今はまだいいや。Catalina唯一の新機能と言われていたが、本当に他に何かないのかなぁ。

コメント(0) 
共通テーマ:パソコン・インターネット

.aacファイルを.m4aに変換するMP4BoxのGUIラッパーを作ったけど放置。 [MacOSX]

Firefoxプラグインとかで、Youtubeなどで音楽だけを落としてきたりしても、それがMP4コンテナに載ってないベアのaacファイルで、そのままではiTunesで使えないのでiPhoneなどiOSの機器に入れて聞けない。

別にYoutube限定ではないのですが、そういうaacはわりと出てきてしまうみたいで、Macだけで聞くならVLCでも入れて聞くことは可能です。でもiOSに打ち込むことは叶わない。catalinaでFinderの機能にiOSとの音楽の同期ができるようになったらしいですが、たぶんベアなACCファイルは使えないんじゃないかと思う。わかんないけど。iTunesがあった時には使えんかった。

音楽だけでもmp4と同じフォーマットにしないといけないわけだけど、MacだとHomebrewからMP4Boxを入れてコマンドを打つ、というのがポピュラーではないかと思う。でもMacでコマンドラインなんてssh以外でやるのはしんどいよという人も多いだろう。

そんなわけでMP4BoxのGUIアプリ化をしたのだが、一応出来上がって動いたのを確認して放置しています。OSDNに上げようかと思っていたのですが、色々面倒臭くてやれていません。というか、基本操作はできるのですが、細かいところが行き届いていない感じなのですね。やれていないことは

・複数ファイルドロップに対応したけれども、フォルダをドロップして中身を変換できない。
・MP4Boxとlibgpac.dylibは入れたものの、libgpac.dylibが依存するダイナミックリンクライブラリが使われるかどうかわからないのでそれは入れていない。
・その依存性の関係が解決されているかどうか、Homebrewを入れていない環境で動作確認していない。

このくらいです。普通に使えるようになるまでには後もうちょっとなのですが面倒臭くてやれていない。というか自分の手元でできているのでもういいかと思ってしまっている。爪が甘いと言われればその通りなのだけれども、巷に出回っているコードを切り貼りしてできてしまったので、最後までやらなくてもいいかなと思ってしまったりするのであった。

それとMP4Boxのできる機能を制限した形で出しても勿体無い気もするんだよね。とはいえ、あんまり機能を増やしたところでGUIが乱雑になるだけなので、単機能でやるのが一番なんだろうけど。どちらにしても最後までやらないと中途半端だよなぁ。仕事ならとりあえずリリースをしてバグフィックスをして、形になるところまでやるんだけど、作って満足なところあるからな〜。

なんにしてもたくさんのファイルをコマンドラインで変換、みたいな作業はやりたくないのは、みんなそうだと思うのでみんなが使えるような状態にはしたいと思う。というか、色々私生活に余裕がないのよ。暇はあるんだけど、集中できる時間がない。

コメント(0) 
共通テーマ:パソコン・インターネット

'NSInvalidArgumentException' (reason 'launch path not accessible')はSandboxの設定をいじって解決 [MacOSX]

ドラッグ&ドロップしたファイルのパスを取得して、Process()でコマンドラインのツールに渡していた。以下のエラーが出た。色々したがエラーが取れない。

*** Canceling drag because exception 'NSInvalidArgumentException' (reason 'launch path not accessible') was raised during a dragging session


起動させるコマンドにアクセスできないと言っている。見つけられないと言っているのか、言っている通りにあるけどアクセスできない状態になっているのかいまいちわからない。

        let task:Process = Process()
        task.launchPath = "/usr/local/bin/MP4Box"

としていたのだが上のエラーが出て見えないと言われる。
だけど
        let task2:Process = Process()
        task2.launchPath = "/usr/bin/open"

は見つからないエラーは出ず、openコマンドが普通に動作した。Homebrewのコマンドだから使えないようだ。なぜだ?

/usr/local/bin/MP4Box
の実体はファイルのリンクなのだが、
/usr/local/Cellar/gpac/0.8.0/bin/MP4Box
と直接パスを指定してもエラーが出る状況は変わらず。

下のリンク先ではファイルのパーミッションがダメだと直さないといけないよと言っていたけど

https://stackoverflow.com/questions/36732874/command-line-launch-path-not-accessible

コマンドをデスクトップのフォルダにコピーしてきて、ファイルもフォルダも777あたりにパーミッションを設定したけどダメだった。実行バイナリがダメになっているわけじゃないもんなぁ、と八方塞がりなのでした。


試行錯誤をやめてググることに集中してみたんだけど、どうやらSandboxとやらの設定らしかった。

https://qiita.com/YutakaMatsui/items/f83b272402a4699f72c2

.entitlementsというファイルの
App Sandbox
をYESからNOに変更するとファイルが見つからないよというエラーはあっさり消える。

なんというかXcodeの仕様に振り回されていたってことなのでした。セキュリティの向上に役に立っているのかもしれないけど、エラーが指定したパスが見つからないと出ているので、セキュリティの問題だとは気づかないよな。前にはこんなファイル無かったと思うし。

またNOからYESに戻そうとするとBuild Failedと出てきてビルドできなくなるんだけど、一回Clean Build Folderかなんかしてからビルドし直すとビルドできた。そういうところも嫌な感じ。とにかく、正しいファイルパスでlaunchできないのなら、Sandboxの設定が問題になっているかもよというお話でした。launch path not accessibleというメッセージは間違っていなかった…。

タグ:SWIFT
コメント(0) 
共通テーマ:パソコン・インターネット

Apple Developerのサンプルコードの検索がひどい。 [MacOSX]

ドラッグ&ドロップのサンプルファイルをApple Developerのサイトで調べようとしたら、浅い階層のページの検索では出てこなかった。というか、何を入れてもヒットせず、何のキーワードを入れればsample codeのところに出てくるのか謎である。

https://developer.apple.com/search/

前はサンプルコードが一覧になったページがあったのにと、つらつらと調べていたら昔のページとかはアーカイブになっていた模様。

https://developer.apple.com/library/archive/navigation/


drag & dropのsample codeは下にあって、やっぱりちょっと昔のなのでSwiftのコードはない。まぁ同じCocoaを使っているのだから、手順は多分一緒のはず。

https://developer.apple.com/library/archive/samplecode/CocoaDragAndDrop/Introduction/Intro.html#//apple_ref/doc/uid/DTS10000384

しかし、ページを刷新した時に起こりがちな事なんだろうけど、従来のページもググらずとも出てくるようにしてほしいものだ。往々にしてサイト独自の検索機能ってのは使えないものだけれども、そこにあるとわかっている場合はサイトが絞れて探す手間も少ない。というか、公式サイトの情報って一次情報として重要なんだから、そこのところはAppleもわかってやってほしい。


ググって他のサイトにSwiftのサンプルコードがあったんだけど、それと照らし合わせつつやっていこうかなと思ったり。

https://codeday.me/jp/qa/20190319/438506.html

というか、サンプルコード無しにリファレンスだけでコーディングするのは辛すぎる。

とりあえず( )を取ったらコンパイルが通るようになったので動作させたらパスが取れていた。そのパスをコマンドラインに投げて挙動見てみようか。進捗はお勉強していない割にはまずまず。Googleさまさまである。

タグ:SWIFT
コメント(0) 
共通テーマ:パソコン・インターネット