Category Archives: iOS SDK

macOS El Capitanとcocoapods

0
Filed under iOS SDK, iPhoneアプリ, Mac

cocoapodsを再インストール

macOS El Capitanではルートに直接インストールできなくなったので、下記のような手順で、/usr/local/ 以下にインストールする必要があります。

$ sudo gem uninstall cocoapods // アンインストール.
$ sudo gem install -n /usr/local/bin cocoapods // ディレクトリを指定してインストール.
$ pod --version // 動作、バージョン確認.

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が良いですね。


iPadアプリのiOS9対応メモ

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

iPadアプリでもiOS9対応はいくつか問題というか、対応が迫られるようです。

ERROR ITMS-90474

私の場合、既存アプリを再submitして出てきたエラーは次のようなものでした。
ITMS90474-error
ERROR ITMS-90474: "Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight'.
要は、「このアプリはPortrait方向にしか対応していないけど、iPad Multitaskingに対応するためには、全方向に対応しろ」ということですね。
まぁ、このアプリの場合、ある程度問題なく動くようにはしていたので、プロジェクト設定を下記のように全方向にチェックを入れることで対応はできました。
ITMS90474-xcode
(もちろん画面を回転させてもある程度動作することをは確認しておく必要はあります)
もしくは、この設定画面の下にある「Requires full screen」にチェックを入れることでも対応可能なようですが、この場合は、iOS9からの新機能のiPad multitaskingに対応できなくなります。
この辺りは下記Qiita記事にまとまっています。
・iOS – iPad Multitaskingに対応したメモ – Qiita

iOS9対応、あっちもこっとも、大変ですね。。