- 投稿日:2021-06-03T23:54:38+09:00
[iOS・Android] Apple Silicon搭載 Macの環境構築トラップまとめ
Apple Silicon(M1 chip)を搭載したMac(以下 M1 Mac)に、iOS・Androidのアプリ開発環境を整備した際に遭遇したトラップをまとめます。 便利なコマンド uname -m 実行中のシェルが、どのアーキテクチャで実行されているかを確認できる arch -x86_64 実行したいコマンド x86_64アーキテクチャでコマンドを実行する(arch -arch x86_64 実行したいコマンドと同じ) arch -arm64 実行したいコマンド arm64でコマンドを実行する(arm64eでも同じっぽい?) iOS・Android共通 Homebrewを使うなら、インストール先は /opt/homebrew のままにしておく M1 MacにHomebrewをインストールすると、brew installを実行した時の保存先は /opt/homebrew/bin/* になる。 なお、Rosetta 2を使用してシェルを実行している場合は、/opt/homebrew・/usr/localどちらにインストールするかを選択するプロンプトがあったはずだが、ここはデフォルト設定にしておく。 iOS rbenv等は使わない、システムのRubyを使う rbenvを使うと、CocoaPodsを動作させることができない システムのRubyを使用する CocoaPodsが依存するffiがarm64に対応していないことが原因 M1 macでpod installができない。sudo gem install ffiをしても治らない(rbenvが原因) じきに対応するとは思うが……。 CocoaPodsが動かない場合 CocoaPodsが依存するffiのバージョンが古い可能性がある ターミナルアプリ(iTerm2なども)を、Rosetta 2で開くように設定する bundle update ffiまたはgem update ffiを実行する M1 Macでpod installを実行する 完全なApple Silicon環境は、まだ遠いようだ…。 CocoaPodsで導入したライブラリが原因でシミュレータ向けビルドができない場合 これはM1 Macというよりは、Xcode 12なのかもしれないけど……。 いわゆる以下のエラーの問題。 building for iOS Simulator, but linking in object file built for iOS, for architecture arm64 Intelのときは発生しなかったのに、M1にしたら発生し始めるプロジェクトにも遭遇した。以下のリンクなどをよく参考にさせてもらって、どうにか対応した。 プロジェクトによっては、アプリのターゲット、もしくは、プロジェクト自体の方でも「Excluded Architectures」の設定をしないとビルドできないこともあった。 MintはMINT_PATHとMINT_LINK_PATHの変数を指定して実行する mint実行前に MINT_PATH と MINT_LINK_PATH をセットしておく。このパスは、アクセス権限のあるディレクトリでなければならない。 上記変数を指定しない場合、mintでインストールするパッケージは、デフォルトの /usr/local/lib/mint にインストールしようとする。しかしBig Surでは(M1 Macでは?)、このディレクトリのオーナーがrootに変わっているため、インストールすることができなくなっている。 https://github.com/MakeAWishFoundation/SwiftyMocky/issues/279 https://github.com/yonaskolb/Mint/issues/188 対策として、上のリンクにあるように /usr/local/lib/mint のオーナーを変更する方法もあるが、あまり安全とは言えない。そのため、 MINT_PATHやMINT_LINK_PATHは、自身の管理できるディレクトリ(例えばプロジェクトのディレクトリ等)に置くのが良さそうだ。 例 $ MINT_PATH=${PROJECT_ROOT}/mint/lib MINT_LINK_PATH=${PROJECT_ROOT}/mint/bin `which mint` bootstrap --link Carthageは特に問題なく動いた Carthageもなにかトラップがあるだろうと構えていたが、思いの外、問題なく通過できた。 Fastlaneも特に問題なく動いた 今のところ大丈夫そう。 Node.jsは未チェック Firebase App Distributionをローカルで実行している人には気になるところ。今後、動作チェックしたら加筆しておこう。 Android インストール時、Intel向けのツールはインストールに失敗する 標準インストールでなく、カスタムインストールを選ぶなら、 EmulatorやIntel HAXMのチェックを外すだけで良さそう。 エミュレータはプレビュー版を使う arm-v8a用のイメージがプレビューで公開されている。AVD Managerでエミュレータを新規で作成するときに、arm64-v8a用のイメージを選択できるようになっている。 しかし、2021年5月公開のrev.3のエミュレータイメージでは、起動してもずっとオフラインになる問題がある。Android Studioでビルドができても、デバッグができない。 rev. 2のイメージをダウンロードして対応しよう。 M1 Macは、iOS開発でトラップが多い Androidは比較的スムーズに環境構築ができたが、iOSについては、トラップがめちゃくちゃ多かった……。特に、Ruby周りとCocoaPods周りにトラップが多い。 とはいえ、M1 Macがリリースされてから半年以上になるので、このあたりのトラップに対する解決策はネット上にたくさんある。おかげで安心してM1に移行していけそうだ。 そういえば、これを読んでいる人の中には、OSSだけでなく外部ベンダーが開発したクローズドなライブラリを使っている人もいるだろう。そういったライブラリが引き金になってビルドできない場合もあるようなので、早めにM1 Macで検証しておくのが良いだろう……。
- 投稿日:2021-06-03T23:18:26+09:00
[お待たせしました] Visual Studio 2019 for Mac バージョン 8.10 提供開始です!
みなさんごきげんよう。本記事は、2021 年 6 月 2 日(米国時間)ポストされた Visual Studio 2019 for Mac version 8.10 is now available の速報的なアレというか意訳のようななにかとなります。内容については下記が原文で、正となります。 Visual Studio 2019 for Mac バージョン 8.10 が本日 (米国時間 2021 年 6 月 2 日) リリースされ、ダウンロード可能になりました。このリリースには、.NET 6 Preview 4 のサポート、ネイティブの macOS Cocoa を使用して記述されたダイアログののアップデート、ソリューションのロードとプロジェクト ビルドのパフォーマンス改善が含まれています。 .NET 6 Preview 4のサポート Visual Studio for Mac V8.10 には、新しい .NET 6 Preview 4 サポートが含まれています。.NET 6 SDK の最新リリースには、順調に多くの機能が実装され、全工程の半分まで対応しています。詳細については、.NET 6 Preview 4 のリリースについての最新の記事をご覧ください。 今回の .NET 6 のリリースで追加された機能のうち、最高にイカしたものの 1 つは、ASP.NET Core における最小限の API (※) を構築するための新しいアプローチでしょう。控えめにいって興奮を禁じ得ないですね。 ※ uikou 注 : 先日何となく日本語にしたやつ ※ uikou 注 : その原文 Native UI の対応状況について 先日発表したとおり、Visual Studio for Mac のユーザー インターフェースを構成するコードを完全なネイティブ コードに書き換えることになまら注力しています。これにより、パフォーマンスと信頼性向上とともに、macOS のオペレーティング システム内の組み込み支援機構の統合によって、アクセシビリティが向上するなどのメリットを享受いただけるようになりました。これは大きな取り組みであり、ユーザー インターフェースの全面的刷新は Visual Studio for Mac 2022 のリリースまで続きますが、この Visual Studio for Mac 8.10 のリリースでは、ネイティブにリライトされたソリューション ウィンドウと NuGet ダイアログが含まれています。 Visual Studio for Mac 2022 に向けて : こんなこと頑張ってます 我々にとって、今年の最重要課題は、素敵な Visual Studio for Mac 2022 をリリースすることです。ユーザー インターフェース レイヤの大幅な変更や、最終版でより高い安定性とパフォーマンスを実現するために、主要な技術的内部構造にフォーカスした、重要な作業を行っています。そして可能な限り、Visual Studio for Mac 8.10 のサービスリリースにこれらの機能強化の一部を含めていきたいと思っています。予定では、Visual Studio for Mac 2022 を次のメジャーリリースとし、それまでは定期的にサービス リリースを行うことになっています。 Visual Studio for Mac 8.10 に含まれる、修正の一例には、新しいファイル システム ウォッチャーと、不必要にデザイン時のビルドで待たされるのを防ぐための内部最適化などがあります。 こうした内容は多くの場合、ソリューション読み込み時の高速化、コンソール経由での git 変更時の高速で正確な処理、ビルド時間の短縮などの形で体感いただけるとおもいます。これらは、Visual Studio for Mac 2022 の最終的なリリースの形に向けての段階的な内部アップデートです。 Rosetta 2 による Apple M1 サポート 将来的には M1 と Apple Silicon のネイティブ サポートを提供する予定ですが、M1 サポートへの最初のステップは変換レイヤーである Rosetta 2 経由での動作となります。当社のテストでは、 Big Sur 11.2 (.NET Core サポートの修正を含む) 以降、M1 サポートは非常にうまく動作しています。M1 サポートにおいて、問題があれば以下の Developer Community のフィードバックから報告いただけます。 M1 環境における Visual Studio for Mac の使用についてもっと知りたい!と思われるそこのあなた!ぜひ、Aaron LaBeau 氏の最近のゲスト投稿をご覧くださいませ。M1 Mac で Visual Studio for Mac を使用して開発した経験、ヒント、コツなどを紹介してくださってます。 最新のアップデート状況 (2021/06/02 現在) 是非、皆さんにも Visual Studio 2019 for Mac をエンジョイいただきたいと心から願っています。最新バージョンにアップデートするには、Visual Studio for Mac のウェブサイトからインストーラーをダウンロードするか、あるいは Visual Studio 内のアップデートを使用して既存のインストールされた製品を更新できます。 今回リリースしたバージョンや Visual Studio for Mac に関するご意見・ご感想がありましたら、この記事(訳注 : 原文のほうです)の下のコメント欄にご記入いただくか、@VisualStudioMac (Twitter) までご連絡ください。Visual Studio for Mac の使用中に何か問題が発生した場合は、[問題の報告] を使用してフィードバックいただけます。 また、Visual Studio Developer Community ウェブサイト にある機能提案から、機能に関するご意見やご提案をいただけると泣いて喜びます。 それでは、Visual Studio 2019 for Mac バージョン 8.10 をお楽しみくださいませ。 以上、Jon さんでした。 それでは皆様、ごきげんよう。
- 投稿日:2021-06-03T21:53:48+09:00
Security OnionをSet Upのハンズオン
はじめに security onionのセットアップにかなり時間を取られたので、記事にしました。 security onionとは 公式 https://securityonionsolutions.com 公式より、 『Security Onion Solutions, LLCは、脅威探索、ネットワークセキュリティ監視、ログ管理のためのフリーでオープンソースのプラットフォームであるSecurity Onionの作成者であり、管理者です。Security Onionには、Suricata、Zeek、Wazuh、Elastic Stackなどのベストオブブリードのオープンソースツールが含まれています。 私たちはSecurity Onionを作成し、維持しているので、他の誰よりもよく知っています。私たちから製品やサービスを購入することは、Security Onionの開発資金を提供することになります。』 参考記事 https://docs.securityonion.net/en/2.3/virtualbox.html download https://github.com/Security-Onion-Solutions/security-onion/blob/master/Verify_ISO.md 忙しい人のためのポイント ・versionは一つ落とす、インストールできない(他の記事でも同様の記述が見られる) ・60GB程度開けておく(インストール途中で容量が足りないと言われる) 以上を気をつける。 ダウンロード 以下よりダウンロードする。 ポイント:公式よりダウンロードの先を指定されるが、おすすめしない。実際には、ダウンロードに1時間かかり(しかも途中で何度も失敗する)、インストール後うまく起動できない。バージョンを一つ落とした方がいい。 仮想マシーンの構築 newをクリック 基本情報 typeをlinux versionをredhat(64-bit)を選択 ※公式にあるようにcentos(64-bit)は選択できない。 メモリ メモリは3MB程度 ハードディスク 仮想ハードディスクを作成します。 ハードディスクファイルタイプ デフォルトのまま ストレージタイプ 可変サイズを選択 ストレージ容量 60GBを選択 ※ここで余裕を持っておかないと、後でエラーがでる。 イメージを挿入 storageを選択 securityonionを選択 emptyマークをクリック後、cdボタンをクリック 一番上を選択 追加でsecurityoininのisoイメージを選択 下記のようになっていれば良い。 セットアップ そのまま待つ。 デスクトップが出てきれば、成功。 画角を修正 右上をクリック ディスプレイを選択 クリック お好みの画角を選択し、適応をクリック インストール デスクトップのインストールをクリック デフォルトのまま デフォルトのまま デフォルトのまま 続ける 東京を選択 キーボードタイプはお好みを選択 その後、アカウントを作る 再起動する。 以上。
- 投稿日:2021-06-03T19:05:44+09:00
psycopg2がインストールできない
python3.9に上げた後、pip経由で psycopg2 のインストールがハマったので、その備忘録 pip install psycopg2 エラー Installing collected packages: psycopg2 Running setup.py install for psycopg2 ... error ERROR: Command errored out with exit status 1: : 中略 : ld: library not found for -lssl clang: error: linker command failed with exit code 1 (use -v to see invocation) error: command '/usr/bin/clang' failed with exit code 1 : 中略 : 解決策 自分は、.bash_profile に追加 export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" 感想 brew 経由で入れた pyenv をはじめとしたパッケージ(postgresql等)と、その依存関係解決で インストールされた openssl@ 1.1 との相性が悪いのか? # which openssl /usr/bin/openssl opensslのパスが、brewのパッケージのインストール先である # brew ls openssl /usr/local/Cellar/openssl@1.1/・・・ : /usr/local/Cellar/openssl@1.1/・・・ を向いてないのが原因のような・・・ シンボリックリンクが張られている訳でもないし・・・ python環境、久々いじると嵌るww 参考 error installing psycopg2, library not found for -lssl 【小ネタ】Macにpsycopg2をインストールする時のメモ
- 投稿日:2021-06-03T15:34:47+09:00
M1macでのRubyonRails環境構築【初学者向け】
概要 今までWindwsPCでRialsを勉強していましたが、今回M1チップのMacbookAirを購入しました。 環境構築に大変苦慮したため、成功までの手順を残しておきます。 Qiitaの記事を参考に色々頑張りましたが、msgpackやnokogiriなどgem周りのエラーが頻出し、なかなかはうまくいきませんでした。 最終的に一度mac自体を初期化し、OSをアップデート後に以下URLの手順を参考にすることで、無事Rials sまで辿り着きました。 参考にしたサイト:https://github.com/osmszk/m1-mac-rails-install マシンスペック ・macOS:BigSur ver.11.4 ・チップ:Apple M1 目次 環境確認と事前準備 PATHの確認 ruby,rails,rbenvの確認 Command Line Toolsをインストール homebrewをインストール rbenvをインストール rubyをインストール railsをインストール railsコマンドの実行 まとめ 環境確認と事前準備 各アプリケーションのインストール前に、インストール予定のアプリケーションのインストール済み有無とPATHの確認をします。 (これをしないと後々手詰まった時の状況整理が面倒です) 【1】pathの確認 % echo $path /usr/local/bin /usr/bin /bin /usr/sbin /sbin 「PATH」とは、コマンドの実行時に参照するディレクトリのルーリングになります。 アプリケーション自体は複数ディレクトリにインストールすることも可能ですが、コマンド実行時はPATHで指定されたディレクトリ以下が参照されます。 【2】ruby,railsのバージョン確認 whichコマンドでインストール箇所、-vコマンドでバージョンを確認します。 macにはデフォルトでrubyがインストールされていますが、rails開発で利用するrubyは後ほど別にインストールしたものになります。 後ほどpathを編集した際に変更がなされているか確認するため、ここでwhichコマンドを実行した際の参照ディレクトリは覚えておきましょう。 (path変更後はwhichコマンドの実行結果がpath指定のディレクトリになります) % which ruby /usr/bin/ruby % ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20] % which rails /usr/bin/rails % rails -v Rails is not currently installed on this system. To get the latest version, simply type: $ sudo gem install rails You can then rerun your "rails" command. 既にrebnvがインストールされていないことも確認しておきます。 % rbenv -v zsh: command not found: rbenv 【3】Command Line Toolsをインストール Command Line Toolsとは Command Line Toolsは、macOSのターミナルでコマンド使うために必要なツールになります。Xcodeというエディタアプリに含まれているため、Appstoreからまとめてインストールすることも可能ですが、Xcode自体はメインのエディタとしては使うことがなく容量も大きいため、ここではCommand Line Tools単体でインストールします。 インストール方法 % xcode-select --install xcode-select: note: install requested for command line developer tools Xcodeをインストールしている人は Xcode自体に「Command Line Tools」が含まれているのでスキップしましょう。 homebrewをインストール 【1】homebrewとは Homebrewはパッケージマネージャー(パッケージ管理システム)といい、macOS上でCUIを用いて必要なアプリケーションがインストールできるようになります。この後使うrbenvもhomebrewを使ってインストールすることになります。 詳細についてはこちらの記事が参考になります。 【2】インストール方法 https://brew.sh/ にアクセスする アクセス後は「Install Homebrew」と記載された直下のコマンドをコピーして実行します。 他記事ではコマンドが記載されているケースが多いですが、公式HPのインストール用コマンドを利用するのが確実です。 インストール後はbrewコマンドが有効かどうか確認するため、-vでバージョン、whichで参照先を確認しておきましょう。 ※brewのバージョンが古い場合はアップデートも同時に行います。 % brew -v Homebrew 3.1.9 (% brew update) % which brew /opt/homebrew/bin/brew rbenvをインストール 【1】rbenvとは railsにて開発を続けていくと、「このアプリはこのrubyバージョンで、このアプリはこのrubyバージョンで...」とプロジェクト毎にrubyのバージョンを変えたいケースも出てくるようです。 rbenvは、複数のRubyのバージョンを管理し、プロジェクトごとにrubyのバージョンを指定して使うことを可能としてくれるツールです。 【2】インストール方法 先ほどインストールしたhomebrewを使ってインストールします。 % brew install ruby-build rbenv インストール後はbrewコマンドが有効かどうか確認するため、-vでバージョンを確認しておきましょう。 % rbenv -v rbenv 1.1.2 【3】パスを通す 無事インストールが確認できたらpathを通します。 pathの設定時は.zshrcファイルを編集します。この「.zshrc」というファイルは”コマンド入力について設定している”ファイルになります。 zshrcファイルについてはこちらの記事が分かりやすいので参考にしてみてください。 コマンドで追加する方法もありますが、現在記述されている内容を見ながら編集するためにvimから直接編集します。 vimの編集方法についてこちらの記事を参考にしました。 vimを開いた直後はenterでの改行や自由なコピペができないため、手こずる場合はescを押してからiを押し、インサートモードにした上での編集をオススメします。 また編集終了後は% source ~/.zshrcで更新することを忘れないでおきましょう。 % vi ~/.zshrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" % source ~/.zshrc % cat .zshrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" rubyをインストール 【1】インストール方法 rbenvでインストールできるrubyのバージョンを確認しましょう。 % rbenv install -l インストールできるrubyのバージョンを確認したら、その際の安定版バージョンをインストールしましょう。 安定板についてはruby公式ページを確認してください。 記事作成時の安定バージョンは2.7.3か3.0.1になるので、ここでは最新版である3.0.1をインストールしてみます。 % rbenv install 3.0.1 【2】インストールしたrubyバージョンの適応 インストールしたバージョンが追加されているか確認します。3.0.1が追加されていることを確認してください。 *がついている箇所が現在使用設定にあるrubyになります % rbenv versions * system (set by /Users/hanawakazuki/.rbenv/version) 3.0.1 3.0.1をglobalで利用できるようにします。 $ rbenv global 3.0.1 上記コマンドを実行後、rbenvで管理されたrubyに変更されます。(3.0.1に*が移動したことを確認してください) $ rbenv versions system * 3.0.1 (set by /Users/hanawakazuki/.rbenv/version) インストール後はrubyコマンドが有効かどうか確認するため、-vでバージョンを確認しておきましょう。 またwhichコマンドでrubyコマンドの先が.rbenv/下に変更されているか確認します。 % which ruby /Users/kazukihanawa/.rbenv/shims/ruby % which gem /Users/kazukihanawa/.rbenv/shims/gem railsをインストール 【1】インストール方法 % gem install rails % rbenv rehash インストール後はrailsコマンドが有効か確認するために、-vでバージョン、whichで参照先を確認しておきましょう。 % which rails /Users/kazukihanawa/.rbenv/shims/rails % rails -v Rails 6.1.3.2 【2】yarnのインストール Rails 6から webpackerが必須になったのでまずはyarnをインストールします。 % brew install yarn しつこいですが-vでバージョン、whichで参照先を確認しておきましょう。 % which yarn /opt/homebrew/bin/yarn % yarn -v 1.22.10 【3】rails コマンドの実行 rails newでプロジェクトを作成します。 rails new プロジェクト名 rails sでサーバーが立ち上げるか確認しましょう。 rails s 表示されたIPにアクセスし、ローカルサーバーで起動ができているか確認します。 その後はVScodeなどから編集可能です。 まとめ macでの環境開発は初めてだったためかなり手こずりました。 vimやzshrcの知識はおろか、ディレクトリ構造やruby自体の知識も足りていなかったため、エラーに悩まされ勉強し直す事になったのはいい機会だと思います。 躓いたときはwhichや-vを確認し、zshrcからpathの整合性を把握しながら進むことが重要だと学びました。 記事自体に不足、解釈の間違い等あれば是非ご指摘ください。宜しくお願いします。
- 投稿日:2021-06-03T07:45:51+09:00
docker for macでThe data couldn’t be read because it is missingのエラーが出る場合
Dockerでfatal error やったこと 以下リンクから、docker 最新バージョン(この時は3.3.3)をダウンロード ドラッグ 起動