無料の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 が自動的に作成されるようになり
上記の対応は不要になった。

cordova で上部のステータスバーを表示させないためには

cordova-plugin-statusbar
を追加する必要がある

追加後、config.xml ファイルに以下の行を追加

JavaScript プロパティ―がインスタンス毎に独立していない

CTest: {
var me = this;

CTest = function () {
me.val = ”;
}
var p = CTest.prototype;
p.setVal = function(pVal) {
me.val = pVal;
}
p.dispVal = function () {
console.log(‘dispVal ‘ + me.val);
}
}

var a = new CTest();
a.setVal(‘aa’);

var b = new CTest();
b.setVal(‘bb’);

a.dispVal();
b.dispVal();

実行結果は以下、同じ値になってしまう。
“dispVal bb”
“dispVal bb”

以下の感じで書けば大丈夫。

var CTest = function() {
// 非同期で呼ばれたメソッド内で this.xxxxx でアクセスできないので、 me を利用
var me = this;

me.val = ”;

me.setVal = function(pVal) {
me.val = pVal;
}
me.dispVal = function () {
console.log(‘dispVal ‘ + me.val);
}
}

var a = new CTest();
a.setVal(‘aa’);

var b = new CTest();
b.setVal(‘bb’);

実行結果は以下
“dispVal aa”
“dispVal bb”

スマホブラウザでfacebookのアプリを起動

href のリンク インテントを http:// ではなく fb:// にする。

ただ、これは、iOS ではうまくいくのだが、android だとうまくいかない。
何年か前に仕様が変わった?

参考:
https://www.tcmobile.jp/dev_blog/programming/url%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%A0%E3%81%8B%E3%82%89%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E8%B5%B7%E5%8B%95%E3%83%BB%E3%82%A2%E3%83%97%E3%83%AA%E3%81%8C%E7%84%A1%E3%81%91%E3%82%8C%E3%81%B0/
https://takeshiyako.blogspot.jp/2015/08/android-open-facebook-page.html

twitter intent

アプリ内で物販はクレジットカードを使う

https://qiita.com/takecian/items/11f3c02e74ad997001bf

In-App Purchaseを使用して、実物の商品やサービス、あるいは不適切なコンテンツを販売することは
できません。
● 実物の商品やサービス。In-App Purchaseを使用する場合は、デジタルの商品またはサービスをア
プリケーション内に配信する必要があります。アプリケーション内でユーザに実物の商品やサー
ビスを購入してもらうには、クレジットカードや支払いサービスなどの別の支払いメカニズムを
使用してください。
● 不適切なコンテンツ。In-App Purchaseを使用してApp Review Guidelineで許可されないコンテンツ
を販売しないでください。たとえばポルノグラフィやヘイトスピーチ、または誹謗中傷などで
す。

参考:https://developer.apple.com/jp/documentation/StoreKitGuide.pdf

無料のSSL証明書

chrome がSSL出ないと警告を表示する事などから
SSLは必須になりそう。
iOS 開発の通信も https だしね。

これからサーバーを立てる場合は無料でもSSLを使いたいので
Let’s Encrypt の使用を計画する

多くのOSに対応してそう。
https://letsencrypt.jp/docs/using.html

インストールも楽そう。