2020年3月5日

iOSアプリにFirebase SDKを追加後、「symbol(s) not found for architecture x86_64」エラーでビルド出来ない場合の対処方法

iOSアプリに「Firebase SDK」を追加した後、「symbol(s) not found for architecture x86_64」エラーでビルド出来なくなるという問題に遭遇しました。


また数ヶ月後ぐらいに同じ問題にぶつかりそうな気がするので、再度ググらなくても良いように解決策をメモしておきます。




> Go to your Target Build Settings -> Other linker flags -> double click -> "+" button. -> Add $(inherited) to a new line.
ios - Firebase Undefined symbols for architecture x86_64 - Stack Overflow
 



 

2020年1月13日

Lenovo Flex 14 でWindowsとUbuntuのデュアルブートを設定する

「Core i5 10th Gen, RAM 16GB, SSD 512GB」のモデルが去年のCyber MondayセールでCostcoで$650で売られていたので購入しました。



SSDは速いしタッチ画面だし指紋認証も出来るし、なかなか良いです。

このマシンに早速デュアルブートでUbuntuを入れようとしたのですが、購入したままの状態だとインストーラがSSDを認識しないのでちょっとびっくり。最近のPCはこんなことになっていたんですね。


以下ググって見つけた解決策のメモです。


① Windowsを普通に起動。
コマンドプロンプトを管理者権限で起動し以下のコマンドを実行。

bcdedit /set {current} safeboot minimal



② BIOS SetUpでStorageをRSTモードからAHCIモードに変更。





「ドライブのデータが全部消えるけどいい?」という確認が出るが、実際には消えないのでYESを選択する。




③ 起動するとWindowsがセーフモードで立ち上がる。
コマンドプロンプトを管理者権限で起動し以下のコマンドを実行。

bcdedit /deletevalue {current} safeboot


④ 再起動するとWindowsが通常通り立ち上がるが、ドライブはAHCIモードになっている。


この状態で再起動してUSBからUbuntuをインストールすればOK。







 

2019年12月20日

VSCodeの「Uncalled function checks」について

VSCode 2019年11月(version 1.41)の更新内容のドキュメントを読んでいたら、「Uncalled function checks」なる機能が実装されたとありました。


Uncalled function checks
https://code.visualstudio.com/updates/v1_41#_uncalled-function-checks


if文の条件のカッコの中で、例えば下の例のようにオブジェクトのプロパティを評価しているつもりで書いた場合、

import * as fs from 'fs';
fs.stat('./index.ts', function(err, stats) {
   if (stats.isDirectory) {
    handleDirectory(stats);
  } else {
    console.log('Not a directory');
  }
});

function handleDirectory(stats: fs.Stats) {
  console.log(stats);
}

下のように「stats.isDirecroty」の下に波線が出て問題があることを示してくれるようになったそうです。


この例では、stats.isDirectory というのはプロパティではなく関数なので、stats.isDirectory() と書かなければ正しく動きません。

isDirectoryの後の「()」を忘れると、関数の戻り値ではなく関数そのものが評価されてしまうため、この例では常にif文の中の処理が実行されることになってしまいます。

もしプログラマが「stats.isDirectoryはboolean型のプロパティだ」と思い込んでしまっていたら、今までならこのようなバグにすぐに気付くことは難しかったのではないかと思います。


かなり細かい変更点ですが、良い改善だと思います。