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

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対応、あっちもこっとも、大変ですね。。

iOS 9のUIWebViewがとても残念で困る

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

気になる挙動(バグ?)があちこちにあるiOS 9のUIWebViewについて、twitter等で見つけた情報をまとめていきます。(なにか分かれば追記していきます)

まとめ

分かりやすいように、最初に箇条書きをまとめておきます。

  1. iOS 9のUIWebViewでは基本的に、強制HTTPS通信!
  2. iOS 9のUIWebViewではHTTP通信したい場合はATSまわりを設定する
  3. CSSのチルダ(~)セレクタが使えなくなった
  4. UIWebViewのwindow.locationがページ遷移に併せて変わらなくなった
  5. htmlのmetaタグのviewportのcontentには”devie-width”を入れるといいらしい

(2015/09/22 更新)

ATS(App Transport Security)関係

『iOS 9のUIWebViewでは、HTTPS通信が基本となる』というのが、Apple Transport Security、通称「ATS」というものです。
事前に開発者には通告されていたし、下記のようなまとまった情報もあるので、必見です。
■[iOS 9] iOS 9 で追加された App Transport Security の概要 | Developers.IO

ということですが、
「まぁ、全部OKにするオプションがある」ということを知っていたので、それで当面はいいだろう、と思っていました。
が、実際にiOS9で使ってみると、なんかおかしい!という感じが出てきたので、調べてみた、というのが今回のブログエントリです。
主に、twitterで情報収集してみました。

UIWebView関係


そうなんです!
実際に使ってみて驚いたのがこれ。。


私も、例外とかクラッシュじゃなく変な止まり方に遭遇しています。。
そう、jsからUIWebView経由でネイティブのUIが動くときが、何か怪しいのです!


Ionicは、Cordova+Angularのフレームワークらしいです(知りませんでした)が、Angular関係でも何か問題あるようですね。


あ、これか!
【iOS 9のUIWebView】では、【CSSのチルダ(~)セレクタ】が使えなくなった、ということらしいですね!!!

↓こちらの記事がまとまっているようです。
■Preparing for iOS 9 | The Official Ionic Blog
前述したIonicの開発者ブログですが、これを読むとさらに闇は深いことが判明!

同ブログの別エントリで詳しく書かれていますが、なんと、UIWebViewのwindow.locationがページ遷移に併せて変わらなくなった、という問題もあるようです!
■iOS 9 Potential Breaking Change | The Official Ionic Blog

その他の問題

AppleのDeveloper Forumからメモ。
HTMLのレイアウトの問題らしい。
■UIWebView layout in iOS 9 | Apple Developer Forums

<meta name="viewport" content="initial-scale = 1.0”>
↑じゃなくて、↓をのように、device-widthをいれるといいよ。
<meta name="viewport" content="width = device-width, initial-scale = 1.0”>

これは軽微な感じですね。

というわけで、

拙訳:『UIWebViewは壊れてるし、WKWebViewは制限ばっかだし、WebViewControler(訳者注:SFSafariViewControllerのこと?)はラッパー作りたい人には向かないし、つんだ。』

同感。

いや、そんなこと言ってないでやっぱり、WKWebViewに置き換える作業しなきゃ、ですよ>自分


Xcode:C99とOpenGLメソッドがらみのとあるエラー対策

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

昔から使っているプロジェクトを、最近のXcode、iOS SDKでビルドしなおしていたら、下図のようなエラーが出てきました。
xcode opengl C99 error

"Implicit declaration of function 'glGenVertexArraysOES' in invalid in C99"

とか、

"Implicit declaration of function 'glBindVertexArrayOES' in invalid in C99"

というエラーです。

調べてみたら、StarckOverflowで該当するQ&Aが見つかりました!

・Errors showing for OES OpenGL statements in Xcode 6 for iOS8 – Stack Overflow
エラーが出るソースの上部に、次のようなimport文を追加して対応できる、とのことです。

#import <OpenGLES/ES2/glext.h>

これで無事解決しました!


iOSアプリ開発:deprecated対応メモ:NSString

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

使い勝手がよいオープンソースライブラリでもメンテナンスがされていないと、使われているメソッドが新しいiOS SDKでdeprecated(非推奨)になってしまい、警告が出ることがあります。
昨今は開発している人も多いのでググるとすぐに見つかるのですが、引数が増えていたりして対応がわかりにくいことがあります。
自分でぱっと見で分かりやすいように、メモを残していきたいと思います。

【NSString】 – sizeWithFont:

Warning: ‘sizeWithFont:’ is deprecated: first deprecated in iOS 7.0 – Use -sizeWithAttributes:

・公式リファレンス → sizeWithAttributes: – NSString UIKit Additions Reference

// 素材.
NSString* str = @"hogehoge";
UIFont* myFont = [UIFont systemFontOfSize:14];
 
// OLD.
CGSize size = [str sizeWithFont:myFont];
 
// NEW.
NSDictionary* dicFontAttr = @{ NSFontAttributeName:myFont };
CGSize size = [str sizeWithAttributes:dicFontAttr];

【NSString】 – drawAtPoint:withFont:

Warning: ‘drawAtPoint:withFont:’ is deprecated: first deprecated in iOS 7.0 – Use -drawAtPoint:withAttributes:

・公式リファレンス → drawAtPoint:withAttributes: – NSString UIKit Additions Reference

// 素材.
NSString* str = @"hogehoge";
UIFont* myFont = [UIFont systemFontOfSize:14];
 
// OLD.
[str drawAtPoint:p withFont:myFont];
 
// NEW.
NSDictionary* dicFontAttr = @{
  NSFontAttributeName:myFont,
  NSForegroundColorAttributeName:textColor }; // テキストの色はここで指定.
[str drawAtPoint:p withAttributes:dicFontAttr];

【NSString】 – drawInRect:withFont:lineBreakMode:alignment:

Warning: ‘drawInRect:withFont:lineBreakMode:alignment:’ is deprecated: first deprecated in iOS 7.0 – Use -drawInRect:withAttributes:

// 素材.
NSString* str = @"hogehoge";
UIFont* myFont = [UIFont systemFontOfSize:14];
CGRect rectArea = CGRectMake(0, 0, 320, 50);
 
// OLD.
[str drawInRect:rectArea
       withFont:myFont
  lineBreakMode:NSLineBreakByWordWrapping
      alignment:NSTextAlignmentCenter];
 
// NEW.
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineBreakMode = NSLineBreakByWordWrapping;
style.alignment = NSTextAlignmentCenter;
NSDictionary *attributes = @{
  NSForegroundColorAttributeName:textColor,
  NSFontAttributeName:myFont,
  NSParagraphStyleAttributeName:style
};
[str drawInRect:rectArea withAttributes:attributes];

[AD]↓評判がいいので私も買いました!

基礎からわかる Swift

著者/訳者:坂本 俊之

出版社:シーアンドアール研究所( 2014-11-20 )

定価:

Amazon価格:¥ 2,484

単行本(ソフトカバー) ( 248 ページ )

ISBN-10 : 4863541589

ISBN-13 : 9784863541580


[AD]↓kindle版を買って読んでいます!