開発-iOS
こんにちは、ビルド職人です。去年の今頃、このような記事を書きました。 CocoaPods 1.0にしたらこの現象が再発してしまいました。 === BUILD TARGET DZNEmptyDataSet OF PROJECT Pods WITH CONFIGURATION Release === Check dependencies Code Sign error: …
割と有名な話かもしれませんが iOS 7とiOS 8以降とでUIActionSheetの挙動が違っていたためハマりました。 Xcode 7.3.1ではすでにiOS 7はサポートされておらず、手元にiOS 7デバイスがなかったのでハマったとも言えます。挙動が掴めずに最終的にiOS 7デバイス…
pod installできない系の問題に結構ぶつかってる気がする。今回は「TypeError - Unable to convert Ruby value `"FBSDKCoreKit"' into a CFTypeRef.」とエラーが出てJenkinsのビルドジョブが途中でabortしてしまう現象についてです。 CocoaPodsはここ数ヶ月…
CocoaPodsをv1.0.0にアップデートしたら「ArgumentError - invalid byte sequence in US-ASCII」でpod installが失敗するようになった
pod installできない系の問題に結構ぶつかってる気がする。今回は「ArgumentError - invalid byte sequence in US-ASCII」とエラーが出てJenkinsのビルドジョブが途中でabortしてしまう現象についてです。 結果から書くと、ビルドスクリプトに export LC_ALL…
iOSデバイス(iPhoneやiPod)に入っている楽曲データ一覧からアーティスト情報やタイトル情報を取得します。 let albumsQuery = MPMediaQuery.albumsQuery() if let albums = albumsQuery.collections { for album in albums { for song in album.items { // …
iOSアプリでタブバーにバッヂを点灯させてみましょう。また消灯させる方法についても紹介します。 標準のバッヂはモサっとしていて嫌だと思う方もいるかもしれません。カスタマイズさせることを厭わない方向けに、タブバーの部分に任意のUIViewを表示させる…
Jenkinsからxcodebuildを使ってipaファイルを生成します。Application Loaderを使ってipaファイルをアップロードするとInvalid Swift Supportが発生したとメールが送られてきます。 Appleから送られてくるメール Application Loaderを使ってアップロードする…
Xcode 6.4で開発していたアプリをXcode 7.1で起動する状態にして、数ヶ月放置してXcode 7.3でまた起動させようとしたらアプリが起動しなくなってしまった。 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could …
先日「TwitterKitを使ってのログインで失敗する」という記事を書きました。Twitterにログインするだけのコードを書くのが随分と簡単になりました。 今日はFacebookにログインする処理を書いてみましたが、やはり少しハマってしまいました。導入ドキュメント…
久しぶりにTwitter APIを弄る機会がありました。 最近はTwitter APIを叩くといえばCoreTweet(C#)一択なのですが、今回はiPhoneアプリだったのでCoreTweetは使えず。公式のTwitterKitを使ってログインさせてみました。 TwitterKitを導入する CocoaPodsを使っ…
すこし前にHeiti SCを指定しているはずなのに意図通りフォントが表示されていないことがありました。調べてみたらiOS 9ではHeiti TC/SCが使えなくなっていることがわかりました。 フォント名 Heiti TC STHeitiTC-Light STHeitiTC-Medium Heiti SC STHeitiSC-…
本記事ではRealm Swiftを使って複数条件でソートする方法を紹介します。使用しているRealm Swiftのバージョンは v4.4.1 です。 Realm Javaで複数条件のソートしたい場合「Realm Javaを使って複数の条件でソート(並べ替え)する - 酢ろぐ!」の記事をご覧くだ…
数ヶ月前に開発で使っているMacBook ProをOS X El Capitan(10.11.3)にしたんですが、当初使えていたXcode 6.4がなにかのキッカケで壊れてしまいました。Xcodeを起動した時にツールバー(?)にスキームや実行するiOSシミュレータを選択する部分が表示されないん…
少し前のエントリ「SwiftでToday Extensionの高さをUITableViewの高さに合わせる」で、Widgetの高さの上限値は「アプリ名のセクションを含めてWidgetが1画面で収まる高さ」と書いておきながら、デバイスを横にした時の処理を忘れていました。 下図は、現在開…
UINavigationControllerのナビゲーションバーを表示/非表示を動的に切り替える方法としては、UINavigationController#setNavigationBarHiddenメソッドを使います。 // ナビバーの表示を切り替える if let nv = navigationController { let hidden = !nv.navi…
SVGはベクター形式の画像フォーマットのひとつです。SVGを使ったことがなかったので調べたこともないのですが、SVGをUIImageに変換するライブラリはいくつかあるようです。 ここでは、SVGKitを使って画像を表示しました。 導入にはいつもどおりCocoaPodsを使…
インストール brewのインストール rubyのインストール nodebrewのインストール appiumのインストール rspecのインストール bundleのインストール 1.と2.はCocoaPodsを使うためにインストールされていると思います。 テストを実行してiOSシミュレータを起動す…
時間ができた時にコツコツと Xcode 6.4 + iOS 8.4 SDKを使って開発していたアプリをXcode 7.2でビルドが通るようにしていました。要するにSwift 1.2からSwift 2.1.1への移行です。 ある時、UICollectionViewのフッターの表示が崩れていることに気付きました…
iOSでネットワーク上のリソースをUIImageViewに表示するライブラリに「SDWebImage」というものがあります。導入方法については以下の記事で紹介しました。 SDWebImageを使ってUIImageViewに画像を表示させるには下記のように書くことができます。 // import …
UIButtonのハイライト色を自動生成する必要がある場合などUIColorの色を一段階暗くしたいことがあります。 // 一段階暗くする var color: UIColor = UIColor.redColor() var hue : CGFloat = 0 var saturation : CGFloat = 0 var brightness : CGFloat = 0 v…
CocoaPodsを使ってEmbedded Frameworkにライブラリを追加したらiTunes Connectからリジェクトされてしまった。 問題は解決していないので寝る前にメモを残しておきたいと思います。解決でき次第、追記するかもしれません。 やりたいこと jsonをダウンロード…
SDWebImageは画像をダウンロードとダウンロードした画像のキャッシュをおこなってくれます。細かな設定があり、キャッシュ総容量であったり有効期限を指定して使うことができます。 導入にはいつもどおりCocoaPodsを使います。Podfileに下記のように記述しま…
その昔、iOSアプリでカスタムフォントを使うのはそれなりに大変だった気がするのですが、Xcode 7ではInterface Builderからカスタムフォントを直接指定できるようになっていました*1。 本記事では、iOSでカスタムフォントを使う方法を紹介します。具体的には…
本ブログで紹介した iOSアプリケーションの開発Tipsをまとめている記事です。 導入 基本的なプログラミング 文字列操作 リフレクション マルチスレッド UIKit 拡張機能・エクステンション マルチメディア 画像処理 動画編集 カメラ ネットワーク デバイス/セ…
直近でやっていたプロジェクトでNSAttributedStringに関する知識が少なくて苦労したので忘れないようにメモしておきます。 NSAttributedStringに関してはすでに色んなブログやサイトで紹介されているのでご存知の方も多いかもしれませんが文字列を装飾してく…
iOS 3.2からUIGestureRecognizerが追加されてからよく使っていたのですが、シングルタップとダブルタップ、ホールド(ロングプレス)に同時に対応します。 シングルタップとダブルタップはUITapGestureRecognizerクラスで対応することができます。ホールド(長…
'_' is not convertible to 'StringLiteralConvertible'が発生したとき。 var hoge = [ "duration": 0.5, "easing": "EasingInOutBounce", "transform": CGAffineTransformMakeScale(1.4, 1.4) ] var image = UIImage(named: "image_name") var hoge = [ "du…
Grand Central Dispatch(GCD)を使った並列処理が実行される順番を調べました。 やりたいこととしては、別スレッド上で処理してすべての処理が完了したらUIスレッドに終わった通知を送りたい。つまり並列処理の待ち合わせ(並列プログラミングガイド的にいえば…
Apple Watch*1のWatchKitアプリで実装する際によく聞かれることのひとつとしてはテーブル(WKInterfaceTable)での表現力です。WKInterfaceTableを使っているといかにUITableViewが表現力に優れているのかが分かります。 それはさておき表題のように「テーブル…
本記事ではAppStoreで公開しているiPhoneアプリを取り下げる方法を紹介します。 AppStoreで公開中のiPhoneアプリを取り下げる 以下の作業は2015年4月1日時点でのiTunes Connectの日本語版UIを元にしています。 iTunes Connectにログインして「マイApp」をク…