酢ろぐ!

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

開発

macOS catalina(10.15)にアップデートしたら pod updateが使えなくなった

macOS catalina(10.15)にアップデート後にpod update をすると、下記のようにエラーが発生します。 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory rbenvを…

UITextViewでNSAttributedStringを表示すると設定値が反映されない

UITextViewでNSAttributedStringを表示すると、あらかじめ設定していた値が利用されず謎の表示になる。ポケカのデッキ構築アプリを作っているんだけど、v1.1.3で雑に入れた対応がことごとくバグ出してて、余裕ないときに書いたコードはいかんなぁと思った次…

App Store向けのバイナリをエクスポートするとき「No Apple Distribution certificate found for ...」とエラーが表示される

ビルドにXcode 11を使うようになってから、いままで発生していなかったビルド時の不具合が発生するようになってしまいました。xcodebuildでSYMROOTオプションをつけているとビルドができなくなってしまう事象等です。 blog.ch3cooh.jp App Store向けのバイナ…

Xcode 11.xでxcodebuildを使ってビルドすると、不正なxcarchiveができるようになってしまった

いまでもJenkinsでxcodebuildを使ってビルド作業をしています。 久しぶりに新規プロジェクトのビルドスクリプトを組んだところ、不正なxcarchiveができるようになってしまいました。ipaファイルを出力するためにxcodebuild -exportArchiveを実行すると下記の…

iPadアプリでなぜか画面が回転してしまう不具合

iPadアプリを縦画面固定にしたいけれど、なぜかクルクル回転してしまう。Device Orientationを確認してもPortrait(縦)しかチェックされていない。 Info.plistを開くと下記のようになっていた。XcodeでみるInterface Orientation設定はiPhoneでしか有効になら…

clgをXcode 11でビルドできるようにした

griffin-stewie/clgをXcode 11 (Swift 5)でビルドできるようにしました。 今週末はダークモード対応をしていたことで、Colors.xcassets を利用していきたいという気持ちが高まりました。ふだん使いの clg でダークモード対応すべく、Colors.xcassets 出力で…

いまどきのiOSアプリのログイン画面の実装について考える

いまどきのiOSアプリでのログイン画面ってどんなかんじなんだろう?と考えてみた。本記事ではデザイン的な話ではなくて、内部の実装的な部分について言及しています。 結論としては、あまり小難しいことをしなくても、 ユーザーIDを入力するUITextField の t…

突然Androidエミュレータでネットワーク通信ができなくなってしまった

なにがきっかけかわからないが、突然Androidエミュレータでネットワーク通信ができなくなってしまった。 E/FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE W/MessengerIpcClient: Timing out request: 1 E/Fabric: Settings request fa…

iOSアプリのapp-ads.txt対策

2019年8月8日にAdMobから一通のメールが届いた。 AdMob は app-ads.txt のサポートを開始します app-ads.txt 導入の準備はお済みですか? え、なにそれ。まさかの即日対応を求められる。 公開されたファイルがすべて正しいことを前提に導入が実施されるため…

UISearchBarのTextFieldの背景色を変更する(iOS 13以降ではAPIが変わるらしい)

UISearchBarのTextField部分の背景色を変更できなくて頭をひねった…… UISearchBarのTextFieldの背景色を変更する 下記のコードで対応することができた。 extension UISearchBar { var textField: UITextField? { return value(forKey: "searchField") as? UI…

GoogleドキュメントのスプレットシートからiOSとAndroidの文字列リソースを作ってみた!

Googleドキュメントのスプレットシートから、iOSのLocalizable.stringsとAndroidのstrings.xml を作成するツール「csv2strings」を作成しました。 csvからiOSとAndroidの文字列リソースを作成するという 一億番煎じ二番煎じのツールです。 色リソースは clg …

Swiftで特定の文字列が格納されているインデックスを取得する

文字列を格納した配列があり、Swiftを使って特定の文字列が格納されているインデックスが知りたいことがあります。 let list = [ "松平", "上杉", "木下", "津田", "島津", "木下", "尼子" ] let foundItems = list.enumerated() .filter({ $0.element == "…

Swiftでマスク画像を使って切り抜く

Swiftでマスク画像を使って、UIImageの画像を切り抜きたい(マスキングしたい)と思います。 マスク画像を使って切り抜く マスク画像を使って切り抜くのは昔からありますが、UIImageView#tintColorが使えるようになったこともあり、最近実装することがありませ…

MKMapViewでAnnotationViewをタップしても反応しない

MapKitのMKMapViewを使って地図を表示するアプリを開発しています。 MKAnnotationViewを継承した CustomAnnotationView をタップしても MKMapViewDelegate#mapView(_:, didSelect:) が呼ばれず困っていました。 タップしてもdidSelectが呼ばれない ハマった…

ポケカノート:更新のお知らせ #ptcgnote

iOS向けポケモンカードゲーム(ポケカ)用デッキ構築アプリ「ptcgnote」のおしらせです。 よければお使いください。本アプリのダウンロードはこちらからお願いいたします。 デッキビルダー ptcgnoteKENJI WADA仕事効率化無料 iOS v1.1.3の更新(2019/10/24) iOS…

ポケカデッキ構築アプリ「ポケカノート(ptcgnote) v1.0.0」をリリースしました

隙間時間を利用してポケモンカードゲーム(ポケカ)のデッキが構築できる「ptcgnote」をリリースしました。 Deck Builder ptcgnoteKENJI WADAProductivityFree 2019年のGWは10連休でお金がなかったので、ひたすらptcgnoteの開発を進めていました。 ptcgnoteに…

UICollectionViewのカスタムセル上のViewが綺麗な正円形にならない

(2019/09/14追記)大昔に「UICollectionViewの初期表示時にズレる - 酢ろぐ!」でも同じ現象でハマっていたらしい。 UICollectionViewのカスタムセル上のViewが綺麗な正円形にならない UICollectionViewでAuto Layoutを使ったカスタムセル上で円形のViewを表…

#一人GWハッカソン でポケカデッキ構築アプリ「ポケカノート(ptcgnote)」を作った

2019年のGWは10連休でした。3月・4月に色々とお金が入り用だったので無一文ですし、どこかへ旅行するお金もなくて用事を作らなかったので10連休まるっと暇していました。 マツダンパー(@matsudamper)さんが、Twitterで「#一人GWハッカソン」のハッシュタグを…

SwiftでWKWebViewを使って全面WebView画面を作る

SwiftでWKWebViewを使って全面WebView画面を作りました。 WKWebViewを使って全面WebView画面を作る import UIKit import WebKit class WebViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UI…

Swiftでカードをシャッフルする

60枚のカードを偏りなくランダムに並び替える方法として、「Fisher-Yates shufflアルゴリズムを用いて自作で配列をシャッフルさせる - Qiita」で紹介されているFisher-Yatesシャッフルアルゴリズムが有名です。調べたらWikipediaでより詳細に「フィッシャー–…

Androidアプリでアイコンバッジを表示させる

既存のAndroidアプリにアイコンバッジをつけることになりました。いままでAndroidアプリでアイコンバッジ数を厳密に管理して表示させたことがなかったので、いざ実装してみると考えていた以上に大変でした。 Playストアアプリに更新待ちが1件存在しているこ…

AndroidでColorからYCbCrを計算する

iOSでUIColorからYCbCrを求めました。 SwiftでUIColorからYCbCrを計算する - 酢ろぐ! 本記事ではAndroid-JavaでColorからYCbCrを計算してみました。 YCbCrのフォーマットについて 12年ほど前にRGB888からYCbCr422に変換するC言語のコードを書いていたようで…

SwiftでUIColorからYCbCrを計算する

コード自体はいままで何回も書いている気がしますが、自分のブログを探しても見つからなかったので、次にSwiftでRGBからYCbCrを計算したいときにコピペして使うようにの備忘録として記事を残しておきます。 YCbCrのフォーマットについて 12年ほど前にRGB888…

SwiftからKotlinへの置き換え

去年はSwiftを書いていて、久しぶりにKotlinに触ったら、Kotlin*1の書き方を忘れていたので、パッと思い出せるようにSwiftからKotlinへの移植時に使える置き換えチートシートを備忘録として残しておきます。 思い出したら追加していく。 範囲 for 文 0から3…

ipaファイルに組み込まれているembedded.mobileprovisionの中身を調べる

大昔に「Xcodeでのビルドを自動化するxcodebuildコマンドとIPAファイルを作成してiTunes Connect(Testflight)に投げる方法 - 酢ろぐ!」で書いたように、Jenkinsからxcodebuildを叩いてipaを作成しています。つい最近AdHocビルドで生成したipaファイルに含ま…

FlutterをmacOSにインストールする

Flutterのv1.0がリリースされました。約10ヶ月前にもFlutterのインストール記事を書きましたが、新しいMacBook Proにも変えたので再度Flutterのインストールからやり直したいと思います。 備忘録代わりにインストールに際してやったことを順に書いていきたい…

さくさん、インコネコのLINEスタンプを作ったってよ

僕がTwitterのアイコンに使っているのは、嫁が生み出したインコとネコのハイブリットミュータント「インコネコ」です。このアイコンに変えてから、かれこれ数年経っている気がしますが名前があったことにビックリしました。一昨日名前を聞きました。 このイ…

はてなブログの記事をblogsyncを使って一気に更新する(macOS編)

酢ろぐでのポケモン関係の記事は「関連記事」セクションが共通ですが、記事数が多くてウェブ管理画面でメンテするのがかなり厳しいです*1。そこでblogsyncを使って、はてなブログの記事をCLIで一気に更新することにしました。 備忘録代わりにブログを書きま…

iOSアプリのBundle IDの調べ方/TestFlightアプリのBundle IDを調べた

「TestFlightアプリのBundle IDがわからないか?」と聞かれたので調べる方法を調べました。 本記事執筆時点で確認できた方法で、将来的に同様に調べることができるかについてはわかりません。 Bundle IDの調べ方 Google等で検索してアプリのidを調べる TestF…

ポケカノート:Privacy policy #ptcgnote

Privacy policy of this app is written in Japanese. (このプライバシーポリシーは日本語で書かれています) プライバシーポリシーについて これは本アプリケーションを利用されるユーザーのためのプライバシーポリシーです。本アプリケーションは、ユーザー…