mac でテキストエディタ

色々あるんだと思うけど、windowsでも使いやすい
visual studio code が良いかな。

Apple Store ではインストールできない?ので
以下からダウンロード
https://code.visualstudio.com/download

ダウンロードファイルを実行(ダブルクリック)することでインストール完了と
思ったが、mac を再起動するとランチャーから消えていた。

アプリはダウンロードフォルダーに置かれたままだったので
アプリケーションフォルダーに移動させる。

cordova で PUSH 通知、結局 cordova-plugin-fcm

以前はサックっと使えたので久しぶりだったがうまくいくと思っていたら
色々とうまくいかなかった。

 visual studio のプラグイン一覧には phonegap-plugin-push なので
 こちらを入れてみようとしたが
 2.2.3 は cordovaのバージョンを 7.1.0 以上を入れる必要があると警告がでる
 無視して使ってみたが
 結局ライブラリがインストールされておらず
 PushNotification.init 時点で undefine でエラーとなる。

 cordova を 7.1.0 にするために
 npm install -g cordova@7.1.0 などでインストールしてみるが
 visual studio の config.xml で 7.1.0 選択してみるがダメ。
config.xml を直接
 6.3.1
 ↓
 7.1.0
 などしても、結果は同じ

 あきらめて
 cordova-plugin-fcm を カスタムインストールでプラグインID指定してインストール
 すると
 Error: File path too long on Windows, keep below 240 characters
 のエラーが発生、こんな制限があるなんて思わず、仕方なく
 visual studio のプロジェクトの配置パスをc:\cordova\project のように短くして
 インストールできた。
 このような制限がある、プラグインは使いたくないが・・・

 firebase cloud message を使用するので、以下のファイルを配置して 
 google-services.json
 GoogleService-Info.plist

 あとは、deviceready イベント後に
FCMPlugin.onNotification
 で、イベントが届くことが確認できた。

logrotate で virtual host をまとめて設定

以下のようにフォルダーに * を入れたらよかった

/var/www/vhost/*/log/*log {
missingok
rotate 5
notifempty
sharedscripts
delaycompress
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}

動作確認方法は
logrotate -dv /etc/logrotate.d/httpd

-d を付けると実行せず確認できる

ERROR: Plugin ‘File’ not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.

実行しようとすると以下のようなエラーが発生
ERROR: Plugin ‘File’ not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
ERROR: Plugin ‘NetworkStatus’ not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.

config.xml
に追加の必要がありそうだが、何を書いて良いのか分からない

コマンドラインで cordova のプロジェクトを作成し、そこに
$cordova plugin add cordova-plugin-file
として、追加し、 config.xml を確認してみる

の行が追加されていたので、同じく追加してみるとエラーがなくなった
面倒。

参考:

無料のSSL Certbot を入れてみた。

思った以上に親切で簡単

おそらく入っていると思うが、 git をインストール
#yum install -y git

Certbot をダウンロード
#git clone https://github.com/certbot/certbot

もし、fatal: HTTP request failed のエラーが出たら
yum update -y nss curl libcurl で直るかもしれない

Certbot を実行
#cd ~/certbot
#./certbot-auto

※色々パッケージがインストールされる

メールアドレスを聞いてくるので、
If you really want to skip this, you can run the client with
–register-unsafely-without-email but make sure you then backup your account key
from /etc/letsencrypt/accounts

(Enter ‘c’ to cancel): info@kaki.work
のような感じで設定

良くわからないが、許可
——————————————————————————-
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
——————————————————————————-
(A)gree/(C)ancel: A

Apache に設定されているドメイン一覧が表示される
Which names would you like to activate HTTPS for?
——————————————————————————-
1: aaaa.kaki.work
2: bbbb.kaki.work
3: cccc.kaki.work
4: dddd.kaki.work
5: eeee.kaki.work
——————————————————————————-
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter ‘c’ to cancel):
数字を入れる Enter なら全てが対象

その後
https://aaaa.kaki.work のような感じでアクセスできた。

あと、3ヶ月くらいで切れてしまうので
cron で 以下を毎日実行させてみる


crontab -e
0 0 * * * /root/certbot/certbot-auto renew --post-hook "sudo service httpd restart"

windows から cordova プロジェクトを iOS に持って行ったとき Cordova/CDVViewController.h file not found

以前はこのようなエラーは出なかった。

しかし、CDVViewController.h のファイルは OS 内に実際見つからない。

ならば、作るしかないかぁ。

iOS でコマンドラインで、 cordova 環境をインストール。
$sudo npm install -g cordova

空プロジェクトを作成
$cordova create TestCordova
$cd TestCordova
$cordova platform add ios

platform/ios/ フォルダ内に
cordovaLib フォルダーが作成されている。
このフォルダ以下が必要なんだと思う。

というわけで、このフォルダをコピーして、エラーのでるプロジェクトにコピー。
ios/ フォルダー以下を合わせる感じ

プロエクトに追加。
xcode のプロジェクトウィンドウ(左側)の一番下にある「+」で Add Files to
cordovaLib フォルダーを追加

違ったエラーが出てしまい焦るが、プロジェクトからリファレンス削除すると
何故かコンパイルが通るようになった。

その後、iOS にcodovaを入れたからなのかは不明だが
remotebuild で作成時、codovaLib が自動的に作成されるようになり
上記の対応は不要になった。