15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacでiBeaconを発信したかったけど苦労した話

Last updated at Posted at 2018-06-23

iBeaconを受信するアプリを実装していたんだけど、発信機器を持っていなかったのでテストできない。。
と思ったらここを発見

たった6行!最も簡単にiBeaconの電波を「発信」する方法

  • 環境
    Bluetooth Low Energy(BLE, Bluetooth4.0)が搭載されたMac製品
Macbook Pro, Macbook Pro Retina, Macbook Airなどなど
最近の製品なら大抵OK

なんと最近のMacなら大抵iBeaconの発信可能とのことだったので、おうちのMacからiBeaconを発信できるようにするまで。

環境

  • node.js 10.5.0 Current -> node.js v8.11.3 LTS
  • Sierra v10.12.6 -> macOS High Sierra v10.13.5

順番

1.node.jsの準備

  • node.jsを複数バージョン切り替えられるようにインストール
  • 上記リンクを参照してnodebrew(nodeのパッケージ管理モジュール)を導入することを強くオススメする。
  • (node.jsのページから最新pkgをインストール&ダウンロードしたところ
    bleaconとのバージョンの相性が良くなく、かつnodeを直インストールしてしまったためバージョン切り替えも容易ではなかった。。。)

2.bleaconをnpmでインストール

  • bleaconはnodeでホゲホゲするとiBeaconを発信できるようになる便利なモジュールらしい。。
  • そのままインストールするとその場にnode_modulesディレクトリを作成してしまうので
    参照サイト通りに適当なディレクトリを作成してインストール。
mkdir ~/ibeacon
cd ~/ibeacon
npm install bleacon

このあとめちゃくちゃエラーでた。(後述)
出なかった方は次へどうぞ!

3.iBeaconを発信するためのスクリプト作成

sender.js

Bleacon = require('bleacon');

var uuid = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
var major = 0;
var minor = 0;
var measuredPower = -59;

Bleacon.startAdvertising(uuid, major, minor, measuredPower);

4.完成!発射!

node sender.js

本編は以上

【番外編】エラー発生

1度目のチャレンジ ~npm install bleacon~

めっちゃ怒られた。なんだこれ。

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

この後には、わたしあなたが何言ってるかわかりません的なエラーがわさわさ。
xcodeがインストールされてないかコマンドラインツールがないときに出そうなメッセージ・・・
あれ?xcode入れてるんだけど!と思ったけど

xcode-select --install

すると

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

なるほど。ごめんな。ソフトウェアアップデートしないと使えないのね。
ということでサボりまくってたMacOSのアップデートをかける(ほんとに開発者かよ)
Sierra v10.12.6 -> High Sierra v10.13.5

アプデ後安心して起動すると、AndroidStudioからまた怒られる。。
the path to Git executable is probably not valid.
OSアプデでgitコマンド使えなくなっとるやん!!!!

なので再度このコマンド叩いてインストール。。。

xcode-select --install
xcode-select: note: install requested for command line developer tools

あれま!command line developer tools死んどる!なるほどな!!!
GUI出て来てくれたのでコマンドラインツール無事インストール!!!!!!!!!

2度目のチャレンジ ~npm install bleacon~

やっぱりだめだ。

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bignum@0.11.0 install: `node-gyp configure build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bignum@0.11.0 install script.

どうやら bignumというものをわかっていないみたい。
調べるとnodeのバージョンを下げないとbignumさんを理解できないことがあるらしい。

気を取り直してnodeのバージョンをRecommended版にダウン。
node.js v10.5.0 Current -> node.js v8.11.3 LTS

.......

+ bleacon@0.5.1
added 4 packages in 14.184s

成功した〜!


たった6行!最も簡単にiBeaconの電波を「発信」する方法 このページをかなり参考にさせてもらいました。
ほんとに開発者なの!?並みの環境の整ってなさだったけど、
私みたいな人がどこかにいる(いるよね?)と信じて忘備録的な感じで。。。
次は、ほんとに発信できてたの?実践編
アプリでも受信してみる?の記事書きたい

15
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?