2015年9月26日土曜日

Xcode7に更新後に、iOS9のHTTP通信箇所でエラー。

Xcode7に更新して、iOS9の端末でHTTP通信箇所でエラーが発生するようになりました。
原因と解決方法について、調べた内容をメモとして残しておきます。

エラーはUIWebViewのloadRequestを実行箇所で発生してました。
特に変わった処理ではなく、httpから始まるサイトをUIWebViewに表示させてようとしただけでした。
そして、UIWebViewの表示は真っ白なままで、次のエラーログが出力されていました。

CFNetwork SSLHandshake failed (-9824)
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)

なお、iOS7とiOS8の端末では、正常にHTTP通信できて
UIWebViewのloadRequest実行時に指定したサイトの内容を表示できているのです。
多分、同じ問題に遭遇している人もいると思い、ググってみると
次のURLに解決方法が記載してました。

https://forums.developer.apple.com/thread/3484
http://nlogic.jp/?p=412

どうやら、iOS9では、HTTP通信をしようとするとHTTPS通信に
置き換えようとするらしいのです。
そして、それを解決する方法ですが、HTTP通信をHTTPS通信に
置き換えさせないようにするために、info.plistに次の設定を追加します。

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

あと、UIWebViewのloadHTMLStringを実行して、
自前でHTMLを描画しており、そのHTML内のiframeで
httpから始まるurlを指定して、画面表示を行う機能を実装している箇所で
そのiframe部分は真っ白に表示され、urlに該当する内容は表示される
上記と同様な現象も発生しておりました。
これは、冒頭のように、CFNetwork SSLHandshake failed (-9824)のエラーログは
出力されていませんでしたが、
上記のinfo.plistの設定を行った後は、iframe部分は正しく表示されるようになりました。

2015年9月23日水曜日

mongodbのインストールメモ

homebrewをインストールしたので、それを使用して
mongodbをインストールした。

1. ターミナルで次のコマンドを入力する。

brew install mongodb

2. 以下のメッセージが表示されて、mongodbがインストールされる。

==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bott
######################################################################## 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
  ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
🍺  /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M


3. 2.で表示されているメッセージに自動ログインの設定に必要なコマンドが表示されているので、そのとおりに、次の2つのコマンドを入力する。

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist


4. mongodbのインストール確認のコマンドを入力して、mongodbがインストールされていることを確認する。

mongo

すると、次のメッセージが表示された。

MongoDB shell version: 3.0.6



2015年9月22日火曜日

Homebrewのインスールメモ

1. 次のURLのサイトを表示。

http://brew.sh/index_ja.html


2. サイトに記述しているように、ターミナルで次のコマンドを実行。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3. そしたら、次のメッセージが表示された。

You have not agreed to the Xcode license.
Before running the installer again please agree to the license by opening
Xcode.app or running:
    sudo xcodebuild -license

4. なので、Xcodeを起動して、agreeボタンを押下する。
 そして、この後に管理者ユーザのパスワード入力を促すダイアログ画面が表示されるので、パスワードを入力する。


5. 再度、2.のコマンドをターミナルで入力する。
 そして、次のメッセージが表示されたので、returnキーを押下する。

Press RETURN to continue or any other key to abort

6. その後に、次のメッセージが表示されたので、管理者ユーザのパスワードを入力する。

Password:

7. そして、次のメッセージが表示される。これで、Homebrewのインストール完了。

==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/bin /usr/local/include /usr/local/share/man /usr/local/share/man/man1
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 3747, done.
remote: Compressing objects: 100% (3582/3582), done.
remote: Total 3747 (delta 40), reused 555 (delta 28), pack-reused 0
Receiving objects: 100% (3747/3747), 3.16 MiB | 963.00 KiB/s, done.
Resolving deltas: 100% (40/40), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at 7506f77 x265: update 1.7 bottle.
==> Installation successful!
==> Next steps
Run `brew help` to get started






2015年9月15日火曜日

expressのインストールメモ

Nodeのフレームワークのexpressのインストールを行ったのですが
すんなりインストールできませんでした。
メモとして残しておきます。

ターミナルで、次のコマンドを入力します。

npm install -g express

すると、次のメッセージが表示されました。

npm ERR! Please try running this command again as root/Administrator.

ルート権限でコマンド実行が必要みたいです。
ですので、次のコマンドを入力します。

sudo npm install -g express

すると、次のメッセージが表示されますので、ルートユーザのパスワードを入力します。

To proceed, enter your password, or type Ctrl-C to abort.

そしたら、インストールが行われます。
イントールが正常に行われているかの確認のために、次のコマンドを入力します。

express --version

expressのバージョンが表示されてました。(4.13.1 と表示されました。)
無事にexpressのインストール完了です。

expressのアプリ作成については、expressアプリ作成及び動作確認の記事になります。



2015年9月14日月曜日

HerokuのNode環境作成のメモ

Webアプケーション作成のために、2年ぶりぐらいにHerokuを触ったのだが
以前にどうやってHerokuを扱ったかを完璧に忘れていました。

2年ぐらい前はWindowsでHerokuのNode開発環境を作成してたのだが、
今回はMacなので、異なる箇所もあると思うのですが、いずれにしろ
Windowsでどのようにしていたかを完璧に忘れています。

かつ、メモやエビデンスを残してなく、学習し直してます。
今度は、こんなことにならないように、メモを残しておきます。

1. まずNodeをMacにインストール。次のサイトよりインストーラをダウンロードして、インストール。
    http://nodejs.jp/nodejs.org_ja/

2. Heroku toolbeltをMacにインストール。次のサイトよりインストーラをダウンロードして、インストール。
    https://toolbelt.heroku.com/

3. Herokuにログインするため、ターミナルから次のコマンド入力。そして、E-mailとパスワードを聞かれるので入力。
   heroku login

4. SSHの秘密鍵・公開鍵を生成するため、ターミナルから次のコマンドを順番に入力。
   heroku keys:clear
   heroku keys:add

    そしたら、以下のメッセージが表示されるので、"y"を入力する

    Could not find an existing public key at ~/.ssh/id_rsa.pub
    Would you like to generate one? [Yn]

5. Webアプリケーションのフォルダを作成して、開始プログラム(js)ファイルを定義するをファイル(Procfile)設置
    (開始プログラム(js)ファイルは、あらかじめ作成しておく。)

6. Webアプリケーションのフォルダに移動して、次のコマンドを入力。
    heroku create --stack cedar

    そしたら、WebアプリケーションサイトのURLとGitのURLが表示されるので、メモしておく。(メモしておいたほうがいいでしょう。)

7. 次のコマンドを順番に入力して、Gitへの登録とWebアプリケーションのデプロイ。(xxxxxは任意のコメント。yyyyyは、6.で表示されるWebアプリケーションサイトのURLの"https://" と ".herokuapp.com/" の間の文字列)
git init
git add .
git commit -m "xxxxx"
heroku git:remote -a yyyyy
git push heroku master

8. WebアプリケーションサイトのURLにアクセスすると、作成したWebアプリケーションが表示される。