Category Archives: トラブルシューティング

macOS SierraのSSH-ADD問題対策メモ

1
Filed under Mac, トラブルシューティング
Tagged as , ,

macOS Sierra (10.12.x)にしてから特に問題ないと思ってたけど、SSHを覚えてくれない問題があったので、問題の背景と対応をまとめておきます。

ssh-addの基本

何か作業する場合、ssh認証する度に毎回パスフレーズを入力するのは大変です。
そこで、ターミナルでssh認証する際に秘密鍵を使う場合、次のように入力してパスフレーズを入れておくと、そのターミナルを閉じるまではその鍵が有効になります。

$ ssh-add /path/to/id_rsa

これまで

Mac OS X 10.11.xまでは、その「ターミナルを開く度にssh-addする」作業を簡略化するために、次のようにしてキーチェーンに登録しておくことが出来ました。

$ ssh-add -K /path/to/id_rsa

“-K”オプションです。

Sierraから

ところが、macOS 10.12.x 、通称Sierraからは、この”-K”オプションをやってもキーチェーンに登録できなくなりました。
対策は、次のように、~/.ssh/config を設定すると解決出来ました。

IdentityFile ~/.ssh/first_id_rsa
IdentityFile ~/.ssh/second_id_rsa
IdentityFile ~/.ssh/another_id_rsa
AddKeysToAgent yes

Macでネットワークの調子が悪い時の対策の一つ

0
Filed under Mac, トラブルシューティング
Tagged as ,

以前から、家のWiFi経由でのみ、一部のネットワークに繋がらない、という現象がずっとありました。
モバイルWiFiルーターとか別のネットワーク経由では繋がるので、家のWiFiルーターの設定かISPが悪いのかと思っていましたが、Macのネットワークの設定を修正したら直ったのでメモしておきます。

解決策

最初に結論。うちの場合では「”ネットワーク”環境設定」の「プロキシ」タブにある「自動プロキシ検出」、これのチェックマークを外したら解決しました!
ネットワークダイアログ 自動プロキシ検出

つながらなかったサイト

これまで「チェックが入っていた状態で、且つ、家のネットワーク(JCOM)を使っていた」のですが、この組み合わせでダメだったネットワークとは次のようなものがありました。

  • iTunes Connect(アプリ開発では必須のサイト!)
  • Slack(Macアプリのみ、ウェブブラウザからは大丈夫だった)
  • iTunesのCDDBサーバー(CD情報を取得できない)

特に最後のとかは、逆に「チェックを入れたほうが良い」という情報もあるので、不思議な感じですが、うちの場合は逆でした。

快適〜!

いやー、これまでのモヤモヤしていた感じが解決してすっきりぽん!ですわ!

Realmのdeprecatedメソッド対策

0
Filed under iOS SDK, トラブルシューティング
Tagged as ,

とあるプロジェクトで使用しているRealmですが、バージョンアップしたらあるメソッドでwarningが出るようになりました。

NSString* pathToRealm = "/path/to/data.realm";
[RLMRealm setDefaultRealmPath:pathToRealm]; // ここでwarning!

調べてみると、0.95.0でいくつかの設定系メソッドがdeprecatedになっていたのです。
上記ソースの箇所は次のように書き換えて対応可能でした。

// deprecated.
// [RLMRealm setDefaultRealmPath:pathToRealm];
 
// for Realm v0.95.0
RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
config.path = pathToRealm;
[RLMRealmConfiguration setDefaultConfiguration:config];

WKWebViewでNSURLRequestをPOSTするとヘッダーが消える問題(解決)

0
Filed under iOS SDK, トラブルシューティング
Tagged as

まだ問題を解決できていません。解決したら本ブログも更新します。解決しました!

POSTできない問題

NSMutableURLRequesetでリクエスト内容を生成し、POSTして結果を表示したい、という処理があります。
これまでUIWebViewで行っていて問題なく動作していましたが、そのコードを、WKWebViewに置き換えると、POSTしたはずのものが消える、という現象が発生しています。(iOS 9.0.1で確認)

ネット上の同様の情報

とりあえず、ググッて調べてみたリンク集。

1. Can’t set headers on my WKWebView POST request – Stack Overflow

http://stackoverflow.com/questions/26253133/cant-set-headers-on-my-wkwebview-post-request
2014-10-11
iOS 8で発生している様子。
JavaScriptでPOSTしている回答がついている。

2. It’s not possible to perform a POST request with HTTPBody content in a WKWebView.

http://www.openradar.me/20464240
2015-04-07
iOS 8.2で発生している。
回答なし。

3. WKWebView ignores NSURLRequest body | Apple Developer Forums

https://forums.developer.apple.com/thread/18952
2015-09-20
iOS 9実機、9.0, 8.4シミュレータで発生している様子。
Appleの回答は、「多分レアケース。再現するコードをまとめてバグレポートに送って」。。

4. WKWebView Post Request Bug?

http://www.openradar.me/20304207
2015-03-26
Mac OS X 10.10.2でも問題が発生している様子。
回答なし。

解決案

「WKWebViewではなく、別の方法で通信して、その結果をWKWebViewに渡す」という方法しか無いっぽいです。
【結論】「NSURLSessionで通信して、その結果を、WKWebViewに渡す」
と、よく見たら、上記でリンクしている最初の記事の回答の1.の書いてあることがまさにそれでした。この回答の場合は「NSURLConnectionを使って通信してそのレスポンスデータをWKWebViewに渡せばOK」と書いてありますが、今はNSURLConnectionのメソッドはdeprecatedなものが多くなってきたので、NSURLSessionが良いですね。