Error while reading embedded mobileprovision Error Domain=NSCocoaErrorDomain Code=260

cordova-plugin-firebase
iOS で通知がこない。ログを見ていると・・・

5.7.0 – [Firebase/InstanceID][I-IID003014] Error while reading embedded mobileprovision Error Domain=NSCocoaErrorDomain Code=260 “ファイル“embedded.mobileprovision”は存在しないため、開けませんでした。” UserInfo={NSFilePath=/var/containers/Bundle/Application/9B4820D5-BB5C-45F4-9145-ED4369D79018/SagabiAPP.app/embedded.mobileprovision, NSUnderlyingError=0x281dbd170 {Error Domain=NSPOSIXErrorDomain Code=2 “No such file or directory”}}

■対策
cordova/lib/copy-www-build-step.js
Line 56
shell.rm(‘-rf’, path.join(dstDir, ‘embedded.mobileprovision’));

///shell.rm(‘-rf’, path.join(dstDir, ‘embedded.mobileprovision’));

参考 https://github.com/phonegap/phonegap-plugin-push/issues/2518



info.plist
FirebaseAppDelegateProxyEnabled:boolean = NO
FirebaseMessagingAutoInitEnabled:boolean = YES

cordova-plugin-fcm ある時から Build faild

cordova-plugin-badge
cordova-plugin-device
cordova-plugin-dialogs
cordova-plugin-geolocation

などはすんなりBuildできるのに、
cordova-plugin-fcm
を追加するとBuildが通らない。

Could not find any matches for com.android.tools.build:gradle:+ as no versions of com.android.tools.build:gradle are available.
のようなエラーが表示される。

platform を作り直す。
platform のバージョンを変える。
cordova のバージョンを上げる。
6時間くらい試行錯誤したが、昨日まで通っていたのに、原因不明。

gradle での class が正しくないような感じなのだが、しばらくPCから離れて
思い付いたことは・・・別の plugin にすること。

cordova-plugin-firebase に変更。
こちらは、すんなりと使えた。
どちらも MITライセンスようだし。
理想の解決せず。

socket.io で CORS となり、つながらない問題

サーバー側の 
Access-Control-Allow-Origin
など変えてみても、うまくいかない

結果、クライアント側の socket.io を

<script src="http://hogehoge:3000/socket.io/socket.io.js">

として、対応すればつながる。

socket = io.connect('http://hogehoge:3000');

socket.on('connect', function() {
    console.log("socket connected");
}

これで良いんだっけ?

Dex Loader Failed to load dx.jar

[YYYY-MM-DD 00:00:00 – Dex Loader] Failed to load C:\android\android-sdk\build-tools\28.0.3\lib\dx.jar
[YYYY-MM-DD 00:00:00 – projectname] 不明なエラー: Unable to build: the file dx.jar was not loaded from the SDK folder!

Eclipseで 上記のようなエラーになった場合。
Eclipse をやめて、Android Studio にするべきなのだが・・・

Android SDK Manager から
Android SDK Build-tools の 25.0.3 を追加し

project.properties ファイルに
sdk.buildtools=25.0.3 を追加

このバージョン以上だと、何故か上記のエラーになる

ARKitなどで距離を計測する仕組み

https://wired.jp/2017/09/13/the-physics-behind-the-magical-parallax-effect-running-your-ar-apps/

視差で距離を計測することができるので
加速度センサーを視差とみたてて、距離を割り出しているようです。
なので、基準点を多く表示して画面を平行に振る動作には
距離を計測に必要な作業のようです。

cordova android ios でバッジを使用する

cordova-plugin-badge を使用するのが良さそう。
バージョンは 0.8.7

デバイスが認識したあとで
document.addEventListener(‘deviceready’, onDeviceReady.bind(this), false);

function onDeviceReady() {
cordova.plugins.notification.badge.set(5);
}

のように呼び出すだけ。

バッジを消すには以下を実行
cordova.plugins.notification.badge.clear();

しかし、実機で実行してみても表示されないというケースがある。

調べてみたところ、
android のOSはによってはバッヂを表示しない?
ver6はダメでver5はだと表示された(数字が出ていないなどの問題もある)
iOS はアプリ設定のバッヂ通知をオフにしている表示されないので注意。

また、重要なところで、push通知でバッジをつけるには、送信側の設定で行うので、
アプリ側(cordova-plugin-badge)とは関係ない。

FCM であれば
badge パラメータに数値を渡すだけ、 0を渡すとバッジが消える。