CatHand Blog

アプリ開発やMac弄り

iOS

gStat

gStatというアプリをリリースしました。 GitHub Actions のステータスを表示したり、実行したりできるアプリです。 play.google.com 最近 CI/CD 環境をBItriseからGItHub Actionsに移行しています。BitriseはbStatというアプリをリリースしていましたが、そ…

FailedToLaunchAppError で SwiftUI のプレビューが表示されない問題の解消法

SwiftUIのプレビューが表示されないことはよくありますが、原因が特定しづらいので困ります。今回は failed to launch... というエラーで表示されない問題が解決できたケースを紹介します。 環境: macOS Sonoma 14.2.1 Xcode 15.2 エラーは以下です。 Failed…

AppStore Connect APIを使わずにfastlaneでAppStore Connectへバイナリをアップロードする

fastlaneでAppStore Connectへアップロードする方法を検索すると、AppStore Connect APIを使う方法ばかり出てきますが、Apple IDのアプリ用パスワード(Application Specific Password)のみを使ってアップロードする方法があります。 まあドキュメントに書…

Github Actionsでビルドナンバーにオフセットを設定する

Github Actionsでいいかんじのビルドナンバーをつけたいとき、 github.run_number が使えます。これはworkflowの実行番号を表しています。 これをそのままではなく、オフセットをつけたい場合は以下のようにコマンドでできます。↓の例では +2000 しています…

Cycle inside ... building could produce unreliable results.

Xcode15でArchiveするとCycle inside ... building could produce unreliable results.のようなエラーが発生する場合があります。 App Extensionを含むプロジェクトで起きることが多いようなのですが、 Embed Foundation Extensions ステップを Copy Bundle …

大きな画像をリサイズして読み込む

Share Extension等、メモリ制約が大きい場合に、大きな画像を普通にUIImage(contentsOfFile:)で読み込むとメモリ不足でクラッシュする場合があります。 そのような場合には、リサイズしつつCGImageで読み込んでからUIImageに変換するとよいです。 gist.githu…

Illustail v5.0.1

でてます。 IllustailNaomoto Niwayamaソーシャルネットワーキング無料apps.apple.com Share Extension経由でInstagtamの投稿をIllustail Cloudへ保存できるようになりました Illustail Cloudへ保存時のデフォルトをプライベートにしました 投稿へのアクショ…

Illustail v5.0.0

Illustail v5.0.0 でてます。TwitterやTumblr等に対応した画像収集アプリです。 IllustailNaomoto Niwayamaソーシャルネットワーキング無料apps.apple.com ↑ iOS / macOS どちらも同じURLです。 Illustail Cloud 今回、画像投稿をタグを付けてクラウドへ保存…

App Extension ターゲットがビルドできない

App Extension を含んだアプリターゲットはビルドできるけど、App Extension ターゲット単体では Multiple commands produce ... のようなエラーが出てビルドできない、ということがありました。 原因は Scheme の設定に複数のアプリターゲットが含まれてい…

bStat Android

Bitriseのステータスを表示したりトリガーをかけたりするアプリ、bStatのAndroid版が公開されました。 play.google.com SwiftUIのマルチプラットフォームでiOSとmacOS向けに作成していたものをFlutterで書き直しました。なのでiOS / macOS版も同じUIでアップ…

Sinjimoru MagSafe 対応 iPhone13 クリアケース

iOS

磁力つよつよなMagSafeケースを買いました。 Sinjimoru MagSafe 対応 iPhone13 Pro クリアケース、強力な磁石内蔵 丈夫なPC+TPU素材で 耐久性と耐衝撃性が優秀な薄型 iPhone透明ケース、 ワイヤレス充電・マグセーフアクセサリー互換可能マグネットケース。M…

Bitrise の Set Xcode Project Build Number ステップが反映されないとき

BitriseでXcodeプロジェクトのビルドナンバーをセットするのに Set Xcode Project Build Number ステップを使います。 devcenter.bitrise.io いつのまにかこのステップが効かなくなっており、ビルドナンバーが常に 1 でアプリが配信されていました。Set Xcod…

Combineのassign()で循環参照

SwiftUIの @Published されてる値をUIKit側から監視したいとき等、↓のようなかんじでCombineのassign()を使うことがあります。 class HogeViewController: UIViewController { private var cancellables = Set<AnyCancellable>() private var hugaValue: Data? { didSet { up</anycancellable>…

IllustailがiOS14で起動しない(解決)

画像収集アプリ Illustail の動画対応を行いました。 IllustailCatHand.orgソーシャルネットワーキング無料apps.apple.com それ以降TwitterでIllustailが起動しないという報告をいくつか見かけたのですが、再現できず困っていました。ありがたいことに環境な…

Spotlightプロセスが暴走する

macOS Monterey にアップデートしたあたりから、Spotlightプロセスが高効率コアを100%占有しっぱなしになる現象が発生していました。MacBookを閉じていても動作しているようでバッテリーを消費して落ちてしまうので困ります。 最近スリープ中にバッテリー消…

iPad Pro (12.9 Inch, 5th)

iOS

iPad Proを買いました。 2021 Apple 12.9インチiPad Pro (Wi-Fi, 256GB) - スペースグレイApple(アップル)Amazon iPad Pro (12.9 Inch 初代)からの買い替えです。初代は発売日に購入したので6年くらい使ったし、ストレージが32GBしかないのでそろそろ買い替…

NFCタグ

AliexpressでてきとうなNFCタグを買いました。 玄関に貼って、セサミロックをNFCから解錠したいという目的です。 www.cathand.app ショートカットアプリの「オートメーション」から「NFC」を選択してオートメーションを作成すると、NFCをトリガーにしてショ…

Meross WIFIスマートプラグ

【Apple製品対応】Meross WIFIスマートプラグ スマホのSiriで家電を操作 全主要スマートスピーカー対応 HomeKit, Amazon Alexa, Google Home 1個入りMerossAmazon HomeKitで使えるスマートプラグを探していてこれを見つけました。 本体についてるQRコードを…

Homebridge

SwitchBot単体でiOSのショートカットが使えないので、HomeBridgeを導入してHomeアプリから操作することにしました。 homebridge.io HomeKitに対応してないIoT機器をHomeKitに対応させるやつです。iOSのHomeアプリからはブリッジとして認識されます。 サーバ…

中華Moft

iOS

AliでMagSafeに付けられるMoftっぽいやつを買いました。 Magnetic Leather Wallet Card Bag Holder for Magsafe IPhone 12 Pro Max Mini Back Card Case Slot Folding Support Stand Accessories|Wallet Cases| - AliExpress 装着したところ。iPhone13 Proで…

ショートカット

iOS

ウチの玄関ドアは鍵が2つあるので、セサミ4も2つ付けました。 www.cathand.app セサミアプリでは鍵を一つずつしか施錠・解錠できないので、iPhoneをロック中に両方開けたい時は iPhoneのロック解除してホーム画面表示 セサミアプリ起動 鍵1をタップ 鍵2をタ…

SESAME4

ウチでは5年ほど前からスマートロックとして Qrio Smart Lock (Q-SL1) を使っていました。 qrio.me ですが最近 【Qrio Smart Lock Q-SL1】アップデート対応終了のお知らせ(2021年9月1日) というメールが来て、アプリのサポートが終了することになったよう…

ITMS-90283 エラー

去年の今頃くらい(たぶんXcode12がでたあたり)から、IllustailのMac版がAppStore Connectに登録できなくなっていました。Xcodeからアップロードしようとすると以下のようなエラーになります。 ERROR ITMS-90283: "Invalid Provisioning Profile. The provi…

iPhone 13 Pro

iOS

発売日に届きました。 左が Pro Max ゴールド、右が Pro グラファイトです。上の写真だとグラファイトの方は再起動中の画面っぽく見えますね。 11 Pro から 13 Pro への機種変です。11Proと同じようなバンパーをつけているのですが、カメラがゴツくなったた…

Xcode13のシミュレータの表示崩れ

iOS

Xcode13のシミュレータで画面表示崩れが起きる場合があります。 これはTLPhotoPickerというフォトライブラリから複数選択できるライブラリなんですが、左が正常、右が表示崩れ状態です。このライブラリだけではなく、どのアプリでも表示崩れが起きます。 git…

iPhone13ケース

iOS

iPhone 13 Pro と Pro Max のケースを買いました。 発売と同時に欲しいので毎回あんまり選択肢がありません。楽天で探してとりあえずの適当なやつを買いました。 Pro Max はこれ。 item.rakuten.co.jp Pro はこれ。バンパータイプが好きです。 item.rakuten.…

iPhone13

iOS

iPhone13 Pro Max ゴールドと iPhone 13 Pro グラファイトを予約しました。どちらも128GBです。 Pro Max はいつも通りオンラインの Apple Store で買ったんですが、Pro は楽天モバイルで買ってみました。 楽天モバイルiPhoneアップグレードプログラムです。 …

中華ミラネーゼループ

iOS

AliExpressでAppleWatchのミラネーゼループっぽいやつを買いました。 いま見たら商品ページ消えちゃってるけど、確か500円くらいだったと思います。 本体が青色なので青いバンドにしました。意外とかっこよくていいかんじです。 本体との接続部の精度があま…

Carthageで作成したxcframeworkを追加した後archiveのvalidationでエラーになる

CarthageでRealmとかFirebase等の大きめのライブラリがxcframework化できるようになったのでビルド時間短縮のために導入しています。 その際、ストアに提出しようとしたときに以下のようなエラーが出る場合があります。 error: exportArchive: IPA processin…

GILD design ジュラルミンiPhoneケース

iPhoneケース買いました。 armabianca-shop.com iPhone11 Pro ミッドナイトグリーンに装着したところ。 装着はネジ止めなので少し神経を使いました。ネジを締めると貼っていたガラス保護フィルムが浮いてきてしまったので、ガラスフィルムは使えないものがあ…