読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

バージョン0.2 PreviewになったWindows Bridge for iOSを使ってみた

唐突にWindows Bridge for iOSのことを思い出しました。 Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsで使えるようにするプロジェクトの名称です。 Build 2015で発表された当時、Project Islandwoodと呼ばれていました。2015年8月にW…

NSTextAttachmentが含まれているNSAttributedStringでは行間をあけることができない

UILabelで「画像+複数行のテキスト」を実装したいが、行間の調整をすることができず頭を抱えていました。ミニマムコードで現象が再現するのか、このエントリを書きながら調査ました。 結論を先に書くと、NSTextAttachmentにもlineSpacingを設定する必要があ…

UIScrollView#scrollViewDidZoomが呼ばれなくなった

Swift 1.xの頃からメンテしているアプリがあって、コンテンツのアップデートを兼ねてSwift 3に更新しました。いきなりSwift 3に上げたのではなくて一応Swift 2.3からのアップデートになります。 そのアプリの、とある画面でズームイン・ズームアウトする機能…

Swiftで角丸・背景透過・枠線のボタンを作る

メモするまでもないかもしれないけれど、こんな感じのボタンを作った。 Swiftで角丸背景透過枠線のみのボタンを作る カスタムviewを使った。 import UIKit class MyRoundButton : UIButton { override func awakeFromNib() { super.awakeFromNib() setTitleC…

iOSのAutoLayoutで複数行テキストのボタンが正しく改行されない

複数行テキストのボタンをAutoLayoutで配置したら、テキスト量によって改行するボタンを作りたかったんだけど、ハマってしまって改行してくれないボタンになってしまった。 作りとしては、UITableViewに改行ボタンを配置したカスタムセルを表示しているだけ…

iOSアプリにFirebase.RemoteConfigを導入する

本記事ではiOSアプリにFirebase.RemoteConfigを導入した際にしたことを紹介します。メモなのでそのまま運用できないかもしれません。 たとえば、ユーザーにアップデートを促す際にアラートを表示させます。 アラートの表示条件としては、ウェブに置いている…

iOSアプリにFirebaseを導入する

Firebaseにはいくつかのサービスがあって、それぞれがライブラリの形でCocoaPodsに提供されています。CocoaPods経由でインストールすることができるのでPodfileに1行追記するだけで済みます。 Firebaseを導入する 「Firebase | App success made simple」で…

Swift 3.0対応は大変だった

Xcode 6.3か6.4の時代に作ったiOSアプリがあってメンテしているんですけれど、iOS 7.xに対応する必要がありCocoaPodsも0.39*1環境でしか使えず、Podfileのuse_frameworks!も使えませんでした。 最近、deploy targetの見直しがあってようやくiOS 7.xを外すこ…

Xcode 8のiOS 10シミュレータを使っているとFacebook SDKの認証に失敗する

Firebase.Authを使ってFacebookログインの実装をしていたのですが、iOS 10でFacebook SDKの認証が通らなくなってしまって焦りました。 (追記)この現象はXcode 8のシミュレータ限定の現象のようです。stackoverflowでも同じ問題に悩んでいる方がいました。 エ…

SVGKitをアップデートしたらLOG_LEVEL_VERBOSEの定義がなくてビルドができない

ikatomoは数多くのサードパーティー製のライブラリを使用しています。 ikatomoをSwift 3.0へアップデートさせようと考えました。しかし、ライブラリの多くはSwift 3.0対応中で現時点での移行は難しそうです。 となればikatomoの更新作業は放置でも良いのです…

Swift3.0でRealmSwiftのビルドが通らない

Xcode 8とiOS 10が正式に公開されました。Swift 2からSwift 3への移植は結構大変という前評判だったので、ボチボチ手をつけていくかぁ……とSwift 3対応を始めたもののすぐに詰まってしまいました。 最近作っているikatomoもPokétomoも、両方ともデータを保存…

ポケモン個体値計算器「Pokétomo for Pokémon GO v1.3」をリリースしました

ポケトモ「Pokétomo for Pokémon GO」の新しいバージョンv1.3がリリースされました。 個体値計算器 Pokétomo for Pokémon GOKENJI WADAユーティリティ無料 下記の修正をおこないました。 ポケモン認識精度の改善 そこそこ精度が上がりましたよ。 ポケモン認…

ポケモン個体値計算器「Pokétomo for Pokémon GO v1.2」をリリースしました

ポケトモ「Pokétomo for Pokémon GO」の新しいバージョンv1.2がリリースされました。 個体値計算器 Pokétomo for Pokémon GOKENJI WADAユーティリティ無料 下記の修正をおこないました。 アイコンの変更 詳細画面の追加 ホーム画面での個体値計算済みのポケ…

ポケモン個体値計算器「Pokétomo for Pokémon GO v1.1」をリリースしました

ポケトモ「Pokétomo for Pokémon GO」の新しいバージョンv1.1がリリースされました。 個体値計算器 Pokétomo for Pokémon GOKENJI WADAユーティリティ無料 v1.0のリリース記事で書いていた通り、下記の修正をおこないました。 ポケモンの認識精度向上 公式ア…

iPhone 4sだとCIDetectorが使えない

iPhone 4sだとCIDetectorが使えません。APIとしては存在しているのですが、detector.featuresInImage(img)で常にnilが返されます。 少し悩んだのですが、フォーラムに同じ問題で悩んでいる方がいました。 CIDetector doesn’t work for QR-code detection o..…

「Windows Bridge for iOS」でGame Technologyを使ったiOSゲームプロジェクトを変換できるのか試してみる

Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。 結論を先に書くと、Game TechnologyにSceneKitを使ったGameプロジェクトはSceneKit自体が未サポートで変換で…

Windows Bridge for iOSで表示できるUIコントロールを調べてみた

Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。 iOSではUISwitchやUIButtonなど標準のUIコントロールが用意されています。これらのUIコントロールはそのまま…

「Windows Bridge for iOS」でUITableViewを使ったiOSアプリを変換できるのか試してみる その2

Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。 UITableViewを使ったサンプルアプリをWindows Bridge for iOS SDKで変換して、きちんとWindows側で再現でき…

Windows Bridge for iOSではUISplitViewControllerを使うと画面が表示されなくなるようです

Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。 先日、storyboardで定義したUITableViewControllerのプロジェクトを変換して、Windows側で実行するとなぜか…

「Windows Bridge for iOS」でUITableViewを使ったiOSアプリを変換できるのか試してみる

引き続きWindows Bridge for iOSネタです。 Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。 さて今回は、UITableViewを扱えるのかを試してみたいと思います…

機能強化された「Windows Bridge for iOS」でiOSアプリをWindowsアプリに変換してみる

「Windows Bridge for iOS」が機能強化されたという情報が入ってきました。新しいバージョンではAutoLayoutに対応したようです。 iOS用Windowsブリッジチームはこのほど、CoreFoundationの正式な実装をWinObjCコードベースに統合し、完全なCoreFoundation及…

App Extension(Widget)を含んだiOSアプリをCocoaPods 1.0にバージョンアップさせる

記事自体は2ヶ月前に書いていたのですがちょうどiTunes Connectがトラブっていた時期だったので公開できずじまいでした。そのため一部記載しているバージョンが古い部分があります。 大半のプロジェクトでCocoaPods 1.0.0へ移行し終えてノウハウも溜まってき…

はてなOAuthがちょっと使いにくいなと思った話

はてなOAuthがちょっと使いにくいなと思った話。 iOSではてなフォトライフに写真をアップロードするアプリを作りたいなと考えています。 はてなOAuthを使うのに最適な方法を考えているのですが思い付きませんでした。実際の最適解がよくわからないのでとりあ…

イカリングクライアント「ikatomo for Splatoon v1.12」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.12がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 Splatoonが1周年らしいです。この時代に多くの人が1年間も同じゲームで遊び続けているというのはすごいことですね。それはそうと…

AutoLayout上でTTTAttributedLabelのリンク(下線)を使うと、iOS 7の場合に下線が一部欠けてしまう問題

UILabelの表示を豪華(?)にするライブラリのひとつに「TTTAttributedLabel」があります。 長文の途中でリンクを貼りたい場合……たとえば Twitterでリプライをもらった時に@ch3coohの部分だけリンクを貼りたいというニーズがあるかと思います。 TTTAttributedLa…

iTunes ConnectにバイナリをアップロードするとITMS-90080のエラーが返ってくるようになった

CocoaPodsをバージョン1.0.0に上げたのが原因でしょうか、App extensionを含むバイナリなのが問題なのでしょうか。 今日の夕方あたりからiTunes Connectにバイナリをアップロードするとワーニングが返ってくるようになりました。 お昼頃にはバイナリをアップ…

CocoaPods 1.0を導入後、JenkinsでCocoaPodsを含んだiOSアプリプロジェクトのビルドで署名に失敗してしまう

こんにちは、ビルド職人です。去年の今頃、このような記事を書きました。 CocoaPods 1.0にしたらこの現象が再発してしまいました。 === BUILD TARGET DZNEmptyDataSet OF PROJECT Pods WITH CONFIGURATION Release === Check dependencies Code Sign error: …

iOS 7.1.2でUIActionSheetに表示されている1番目の項目を選択しても何も実行されない

割と有名な話かもしれませんが iOS 7とiOS 8以降とでUIActionSheetの挙動が違っていたためハマりました。 Xcode 7.3.1ではすでにiOS 7はサポートされておらず、手元にiOS 7デバイスがなかったのでハマったとも言えます。挙動が掴めずに最終的にiOS 7デバイス…

XcodeのiOS Simulatorを単独で起動させる

開発環境やCocoaPodsの関係でiOS 7のサポートが切れると嬉しいなと考えています。 XcodeのiOSシミュレータは、単独で起動させることができます。 $ cd /Applications/Xcode.app/Contents/Developer/Applications $ open ./iOS\ Simulator.app または $ open …

MacでiOSとAndroid用のアイコンを1024x1024のストア申請用の画像からスクリプトで一気に作成する

とあるプロジェクトでiOS/Androidそれぞれに対応したアプリを開発しているのですが、アイコン用にストア申請用の1024x1024の画像をいただきました。 たかだか十数枚なのでペイントツールを使って1枚1枚手作業で縮小しても構わなかったのですが、微調整が入る…

CocoaPodsをv1.0.0にアップデートしたら「TypeError - Unable to convert Ruby value "FBSDKCoreKit" into a CFTypeRef.」がでてpod installが失敗するようになった

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…

イカリングクライアント「ikatomo for Splatoon v1.11」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.11がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 第14回フェスも無事ノルマを達成して、黒ZAPのAIM感覚が残っている間にSに戻しました。今回のフェス時間はいつもよりも12時間長…

SwiftでiOSデバイスに入っている楽曲データを取得する

iOSデバイス(iPhoneやiPod)に入っている楽曲データ一覧からアーティスト情報やタイトル情報を取得します。 let albumsQuery = MPMediaQuery.albumsQuery() if let albums = albumsQuery.collections { for album in albums { for song in album.items { // …

イカリングクライアント「ikatomo for Splatoon v1.10」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.10がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 iOSアプリを開発し始めて数年になりますが、特急申請を含めても最速で配信されました。5月3日10:13に申請に出したv1.10が5月4日2…

Swiftでタブバーにバッジを点灯させる/タブバーの部分に任意のUIViewを表示させる

iOSアプリでタブバーにバッヂを点灯させてみましょう。また消灯させる方法についても紹介します。 標準のバッヂはモサっとしていて嫌だと思う方もいるかもしれません。カスタマイズさせることを厭わない方向けに、タブバーの部分に任意のUIViewを表示させる…

イカリングクライアント「ikatomo for Splatoon v1.9」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.9がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 ようやくv2.7.0が配信されましたね。スプラシューターとトルネードの組み合わせが塗り的に最強でスシワサばかり使っています。ギ…

イカリングクライアント「ikatomo for Splatoon v1.8」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.8がリリースされました。v2.7.0対応は次のバージョンとなります。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 今回は不具合修正がメインとなっています。 不具合修正 フェスランキングに登録されてい…

Xcode 7でビルドしたアプリをApplication Loaderを使って申請するとInvalid Swift Supportが発生する

Jenkinsからxcodebuildを使ってipaファイルを生成します。Application Loaderを使ってipaファイルをアップロードするとInvalid Swift Supportが発生したとメールが送られてきます。 Appleから送られてくるメール Application Loaderを使ってアップロードする…

イカリングクライアント「ikatomo for Splatoon v1.7」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.7がリリースされました。前回から1ヶ月もお待たせしてしまいました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 イカリング(SplatNet)不調による通信エラー発生時の対応やv2.6.0でのギアパワー修正の…

iOSでreason: 'Could not load NIB in bundle: 'の例外が発生して起動しなくなった

Xcode 6.4で開発していたアプリをXcode 7.1で起動する状態にして、数ヶ月放置してXcode 7.3でまた起動させようとしたらアプリが起動しなくなってしまった。 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could …

iOSでFacebook SDKを使ってのログインに失敗する

先日「TwitterKitを使ってのログインで失敗する」という記事を書きました。Twitterにログインするだけのコードを書くのが随分と簡単になりました。 今日はFacebookにログインする処理を書いてみましたが、やはり少しハマってしまいました。導入ドキュメント…

iOSでTwitterKitを使ってのログインで失敗する

久しぶりにTwitter APIを弄る機会がありました。 最近はTwitter APIを叩くといえばCoreTweet(C#)一択なのですが、今回はiPhoneアプリだったのでCoreTweetは使えず。公式のTwitterKitを使ってログインさせてみました。 TwitterKitを導入する CocoaPodsを使っ…

iOS 9でHeiti TC/SCが使えなくなっている

すこし前にHeiti SCを指定しているはずなのに意図通りフォントが表示されていないことがありました。調べてみたらiOS 9ではHeiti TC/SCが使えなくなっていることがわかりました。 フォント名 Heiti TC STHeitiTC-Light STHeitiTC-Medium Heiti SC STHeitiSC-…

イカリングクライアント「ikatomo for Splatoon v1.6」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.6がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 ローカライズ系の不具合をまとめて修正しました。 特にスペイン語はひとつひとつの単語が日本語と比べると長いので、iPhone 4s/5s…

CocoaPods経由でRealm 0.98.3をインストールすると'impl/async_query.hpp'が見つからないとエラーが出てしまう

今までとは別のプロジェクトにアサインされたので、いつものように開発環境を整えようとpod installをしてRealmをインストールしようとしたところ、謎のエラーが出てビルドができなくなりました。 謎のエラーとは'impl/async_query.hpp' file not find.とい…

イカリングクライアント「ikatomo for Splatoon v1.5」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.5がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 地味ぃ〜な変更点のみで終わらせるつもりだったのですが、気になるところをいじり続けていたらかなりUIが変わってしまいました。 …

イカリングクライアント「ikatomo for Splatoon v1.4」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.4がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 今回、変更点は少ないです。 フレンド詳細画面でサブウェポン、スペシャルの表示 ものすごく地味ですが、サブウェポンとスペシャ…

イカリングクライアント「ikatomo for Splatoon v1.3」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.3がリリースされました。1週間に1回はリリースしたかったんだけど遅くなってごめんネ。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 今回、変更点が多いです。 今まで塗った面積(インクポイント)画面を…

イカリングクライアント「ikatomo for Splatoon v1.2」をリリースしました

「ikatomo for Splatoon」の新しいバージョンv1.2がリリースされました。 ikatomo for SplatoonKENJI WADAユーティリティ¥480 今回、詳細画面にギアパワー補正値を追加しました。スプラトゥーンにはギアと言って「アタマ」「フク」「クツ」があります。イカ…