日々精進

新しく学んだことを書き留めていきます

iOS

Mac上のProvisioning Profileが保存されているフォルダのパス

iOS

これたまに必要になるけどいつも忘れる。以下パスに保存されている。 ~/Library/MobileDevice/Provisioning Profiles 参考: Find provisioning profile in Xcode 5

AppCodeからアプリを実機で動かそうとすると、「failed installing application, reason: Error Domain=JBDeviceKitErrprDomain」エラー

iOS

XCodeからは動かせるのになぜ。。 下記サイトではcleanビルドするか、Resourcesフォルダの設定を直せば直るよと書いてあるが、cleanビルドしてもだめだしResourcesフォルダは普通に動いていた時から触ってない。。 結局XCodeから実行してしのいだ。 参考: i…

XCodeを実機上で動いているプロセスにアタッチできない

iOS

XCodeのメニューのDebug -> Attach to Process -> By Process Identifier (PID) or Name... からアタッチ出来そうだが、出来なかった。。やったことは以下。 メニューに実機で動いているアプリ名の一覧が出るのでそれを選んでも「Connection Lost...」という…

UIPopoverController#contentViewControllerに代入できない。

iOS

UIPopoverController#contentViewControllerに代入できなくて、再表示時にcontentViewControllerのインスタンスを変更している箇所で不具合が発生した。 原因はSDK8より、UIPopoverController#contentViewControllerが変更不可能になっていることっぽい。(再…

CharlesでiOS Simulatorの通信をキャプチャする

iOS

Charlesを起動しても、iOS Simulatorの通信をキャプチャしてくれなくて困っていたが、 以下で直った。 メニューのProxy>Mac OS X Proxy にチェックを付ける iOS Simulatorを再起動する Charlesを起動してから iOS Simulatorを起動しないといけないっぽい。 …

iOSビルド時に「Warning: The Copy Bundle Resources build phase contains this target's Info.plist file」警告

iOS

原因はPlistのTarget Membershipにチェックが付いていることなので、 はずしてやればよい。 詳しい手順は下記サイト参照。 『アプリ作成日記 WARNING: The Copy Bundle Resources build』

iOS8でUITableViewCellのReorderControlが消える

iOS

一度画面外にいって再度表示されたCellのReorderControl(並べ替えマーク)が消えるという不具合。 これはiOS8のバグらしい。Cellのサブクラスで以下を実装すれば直る。 - (void)prepareForReuse { [super prepareForReuse]; [self setEditing:NO animated:N…

UISearchBarの中のTextFieldの背景色を変更する

iOS

UISearchBarのsearchBarStyleをminimalにする。 UISearchBarを持つViewControllerで以下を実装する - (void)viewDidLoad { [super viewDidLoad]; UITextField *textField = [self findTextFieldOfSearchBar:self.searchBar]; // 背景色を白に変更 [textField…

iOS7,iOS8でTableViewCellの背景色が白になる

iOS

IB上でbackgroundColorをclear colorにしても効かない。 コードからbackgroundColorを設定してやらないといけない。 CellクラスのawakeFromNibあたりで以下を実行すると直る。 iOS SDK8でビルドする前は背景色透明になってたのにな。。 self.backgroundColor…

iOS7,8でモーダルビューの背景色を半透明にする

iOS

iOS7と8でやり方が違うので、以下のように分岐させる。 IS_GREATER_THAN_OR_EQUAL_TO_IOS_8は独自に定義したマクロ。 // モーダルビューの背景を半透明にし、fadein, fadeoutさせるための設定 if (IS_GREATER_THAN_OR_EQUAL_TO_IOS_8) { // これが無いとモー…

2/1からiOS8SDKと64bit対応が必須になるのは新規アプリのみで、更新する場合は6/1から

iOS

めっちゃ勘違いしてたんだけど、既存アプリを更新する場合はiOS8SDKと64bit対応は6/1以降で大丈夫らしい。今日(12/18)来たメールで知った。 原文は以下。 Dear Developer, As we announced in October, beginning February 1, 2015 new iOS apps submitted t…

NavigationBarの色を変更する

iOS

iOS SDK8でビルドするとNavigationBarの色が白になってしまった。 iOS SDK7まではUINavigationControllerのbackgroundColorと同じ色になっていたのに。。 NavigationBarのbarTintColorでNavigationBarの色を設定すると色を変更できた。 参考: How to change…

iTunes12を使ってipaファイルを実機にインストールする

iOS

久しぶりにOrganizerを使ってipaを実機にインストールしようとしたら出来なくなってた。。 今はiTunesを使ってやるらしい。 手順は下記記事参照。この手順分かりづらいよ。。Devicesウィンドウにドラッグ&ドロップでインストール出来るようにしてほしかった…

Xcode6でiOS6のシミュレータを起動できない

iOS

iOS6のシミュレータを起動したい場合はXcode5をインストールしてそっちからアプリを実行するしかないらしい。 Appleの古いバージョン切りは相変わらずアグレッシブだなぁ。 参考: Run app in iOS 6 Simulator in Xcode 6

iPhone構成ユーティリティはMavericks以降で使えない

iOS

かなり今更な話だが、久しぶりにiPhone構成ユーティリティでipaファイルを 実機にインストールしようとしたらクラッシュして困った。もうiPhone構成ユーティリティはメンテされてないらしい。 XCode6からオーガナイザでもインストール出来なくなってるし、困…

iOSアプリの申請を自動化するツール「deliver」

iOS

まだ使ってないけど、気になる。IPAのアップロード、スクリーンショットのアップロード、アプリのメタデータの更新がCLIからできるらしい。 'Deliver' - Automatically release iOS app updates and screenshots デプロイ自動化したい。。

TabbarItemのImageが正しく表示されない

iOS

以下の画像のようにタブバーより画像の方がちょっと上にずれてしまう。 [tabBarItem setImageInsets:UIEdgeInsetsZero]でInsetsを設定してもだめ。 これはUITabBarの仕様っぽい。 選択状態と非選択状態のtabBarItemの画像を切り替えたい場合は以下のサイトで…

Xcode6でビルドすると「'XCTest/XCTest.h' file not found」

iOS

Kiwiのバージョンが古いことが原因だった。 Kiwiを2.3.0にバージョンアップすると直った。 2.3.0からはXCTest版が標準となっているので以下のようにする。 pod 'Kiwi', '2.3.0'

iOS8シミュレータでテキストフィールドを選択してもソフトウェアキーボードが表示されない

iOS

原因はシミュレータの仕様変更。 Cmd+Kを押すと表示される。が、キーボード右下にある「∨」みたいなキーをタップして キーボードを隠すと再び表示されなくなる。 誰得なんだこの仕様。。 参考: Missing keyboard on iOS8 simulator?

iOS8SDKでビルドしたらdescriptionプロパティ・hashプロパティをoverrideしているクラスで「use of undeclared identifier」エラー

iOS

原因はNSObjectの以下のメソッドがreadonlyプロパティに変更されたこと。 ・hash ・superclass ・description ・debugDescription これによって、_descriptionのようなインスタンス変数が自動で作られなくなった。 以下のようにしてインスタンス変数を手動で…

Today Extensionの下部にスペースができる

iOS

原因はToday Extensionのマージンがデフォルトではleft:47, bottom:39であること。 以下を実装すると下部のマージンを0にできる。 - (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets { defaultMarginInsets.bot…

XCodeでアプリを実行すると「Could not launch <appname> failed to get the task for process xxxx」または「A signed resource has been added, modified, or deleted.」エラー

iOS

Adhoc版とそうでない版のスキーマを切り替えて実行したりすると、掲題のエラーが良く出る。 以下の対応で直った。 Cleanビルド(これで大抵直る) XCode再起動 Adhocスキーマはそのままでは実機で実行できない。プロビジョニングファイルと証明書を一時的に…

socket.io-objcでSSL通信をすると、「There was a problem communicating with the secure web proxy server (HTTPS)」エラー

iOS

原因は自己証明書を使っていること。 socket.io-objcはDEBUGマクロが1の場合は自己証明書を許可するが、 0の場合は掲題のエラーが出る。 SocketIO.mで定義されているDEBUG_CERTIFICATEを常に1にすると常に自己証明書で通信できる。 でも正しい解決策は証明書…

UITableViewのSeparator InsetのLeftを0にしても区切り線が一番左までこない

iOS

Separator Insetの他にlayoutMarginも変更しないといけない。 // CustomCellクラスに実装する - (void)awakeFromNib { [super awakeFromNib]; [self setSeparatorInset:UIEdgeInsetsZero]; [self setLayoutMargins:UIEdgeInsetsZero]; } // CustomViewContro…

Today Extensionの高さの最大値の計算式

iOS

以下の式で計算できる。 iPhone: float maxHeight = [[ UIScreen mainScreen ] bounds ].size.height - 126; iPad: float maxHeight = [[ UIScreen mainScreen ] bounds ].size.height - 171; 参考: &amp;lt;a href="http://stackoverflow.com/questions/24…

XCode6でiOS sdk7を使ってビルドする方法

iOS

XCode5の中にあるiOS sdk7にsimlinkを張ればよい。 以下はアプリケーションフォルダにXcode6を「Xcode」という名前で、Xcode5を「Xcode5」という名前でインストールしている場合のコマンド。これを実行してXcodeを再起動するとBase SDKとしてiOS7.1を選択で…

iOS WidgetでCoreDataを使うと「Failed to inherit CoreMedia permissions from 552: (null)」

iOS

ググっても解決した例が見つからなかった。。 やむを得ず、本体アプリとWidgetでDBを共有するのを断念し、それぞれ別のDBを作るようにした。 解決策ご存じの方いらっしゃいましたらコメント頂けますと幸いです。

XCodeでビルドすると「missing required architecture armv7 in file xctest」エラー

iOS

スキーマの設定が原因。 Edit Scheme...>Build>Test Targetの「Test」以外のチェックを外すと直った。 参考:ios - missing required architecture armv7 in file XCTest on building application target - Stack Overflow

build Configurationを追加し、それでビルドすると「Library not found for -lPods」エラー

iOS

CocoaPodを使っており、後からbuild Configurationを追加した場合に発生する。 原因は後から追加したbuild Configurationに対してCocoaPodによる設定がまだされていないため。 pod installを実行すると直った。

Widgetと本体アプリでDBを共有する方法

iOS

下記記事の通りにやるとできたので、ここに書くことないです。。感謝! 参考:Xcode 6 (Swift + Travis CI + iOS 8) - ja.ngs.io