CatHand Blog

アプリ開発やMac弄り

iOS

M1 Macでシミュレータ向けビルドが通るようにする

CocoaPods等でバイナリの形で公開されているライブラリの中には、実機ビルドや Intel Mac のシミュレータ向けビルドは通るのにM1 Macのシミュレータ向けビルドが通らないものがあります。 例えば GoogleSignIn です。これは以下のissueでも盛んにリクエスト…

PHPickerViewControllerで複数選択した場合のエラー

iOS14では UIImagePickerController の代わりに PHPickerViewController を使うことで複数の画像を選択することができます。 複数選択した画像を全部UIImageにして取得したくて、以下のようなコードを書きました。 func picker(_ picker: PHPickerViewContro…

AirTagケース

AliExpressでAirTagのケースをいくつか買いました。 革っぽいやつ ja.aliexpress.com 純正のレザーキーリングに似てるやつ。 AirTagを入れてみたところ。少しヨレます。 そして横から見ると隙間が空いています。AirTagが外れないか多少心配。 シリコンでカラ…

SwiftUIのListのseparatorを消す

SwiftUIの List はデフォルトでセパレータ(区切り線)が表示されていて、非表示にすることができません。 iOS13 iOS13では、以下のどちらかの方法で消すことができます。 UITableView のappearanceを変更する List { ListItem(title: "タイトル1") ListItem…

AirTag

iOS

届きました。 最新 Apple AirTag 4個入り発売日: 2021/04/30メディア: エレクトロニクス 少し試してみましたが、近くでの位置検索はだいぶ正確です。音を出さなくても探せるのがいいですね。 近接の位置情報がかなり正確で、iPhoneのユーザー数を考えると遠…

SwiftUIに足りないイージングアニメーションを追加する

SwiftUIのAnimationには easeIn とかはあるんですが、 easeInCubic とかがありません。 ちょっと検索してみたところ、↓が見つかりました。 github.com しかしこれは時間に対する値を返す関数群のライブラリなので、SwiftUIの Animation では使用できません。…

iPhone12 mini

iOS

娘(7)用にiPhone12 miniを買いました。 白いiPhone久々に買った気がする。 サイズ的にはそんなに小さくは感じなかったんですが、重さはすごく軽く感じます。

MXParallaxHeaderのヘッダーの高さを可変にする

Twitterのユーザー詳細画面のような、上からヘッダー、タブ、コンテンツのような画面を作る時、MXParallaxHeaderが便利です。 github.com こういう画面。 SwiftUI対応 ヘッダーの高さを中身によって可変にする ということがやりたかったんですが、地味に大変…

BitriseからDeployGateへデプロイする

BitriseからDeployGateへデプロイするのは DeployGate Upload ステップがあるので簡単そうです。 ですが、既存のDeployGateアプリの配布ページへデプロイ設定する際にいくつかハマった部分があるのでメモしておきます。 DeployGate: API Key API Keyには、De…

Xcodeが断続的にレインボーカーソルになる

Xcodeを使っているとランダムにレインボーカーソルが発生して数分操作不能になる、という現象が発生しました。 MacBook Air (M1, 2020) / macOS 11.1 / Xcode 12.3 キャッシュ削除、シミュレータ全削除、Xcode再インストール等試したが改善せず Wifiを切ると…

Carthageでxcframeworkを作成する

Carthageでxcframeworkを作成できるようになりました。M1 Macで開発するにはライブラリのxcframework化はほぼ必須なので助かります。 github.com 既にCarthageのreadmeでは carthage update --use-xcframeworks を使うよう案内されていますが、現状最新のバ…

M1 macでcocoapods-binaryを使う

cocoapods-binaryはcocoapodsで管理しているライブラリをプレビルドしてくれる便利なプラグインです。主にCIサービス等でビルド時間を短縮するのに役立ちます。 github.com ですが、cocoapods-binaryでプレビルドするとarm64シミュレータ向けのバイナリが作…

MacBook Air (M1, 2020)

届いてから2週間くらい経ちました。 www.cathand.app 現状の開発環境の方針です。 iOS carthage 使うのやめてcocoapodsかSwift Package Managerにする cocoapodsでビルド通らないやつ Firebase SDK Swift Package Managerで入れる OpenCV 自前でビルドしてxc…

OpenCVを含んだiOSプロジェクトをApple Silicon macでビルドできるようにする

MacBook Air (M1) の開発環境を構築してます。 www.cathand.app OpenCVを含んだiOSシミュレータ向けビルドが通らない問題ですが、どうもlipoコマンドでは同じアーキテクチャのデバイス向けとシミュレータ向けのバイナリを混在できないようで、それらを混在さ…

MacBook Air (M1, 2020)

届きました。メモリ16GB / SSD512GB です。 きた pic.twitter.com/NctAaQSUhu— nya (@cathandnya) 2020年11月22日 とりあえず Apple Silicon mac でのアプリ開発環境を整備しています。現状(11/22)の問題点をまとめました。 Rosettaで動くやつ Homebrew Co…

はてなブログアプリにログインできない

iOS

iPhoneのはてなブログアプリにログインできなくなりました。 Webではログインできて、そのIDとパスワードをそのまま使ってもログインできません。 サポートにも連絡したんですが、自己解決したのでやり方を載せておきます。 iPhoneのはてなブログアプリにはI…

Apple Watchのバンド

iOS

www.cathand.app AppleWatchですが、風呂入るとき以外ずっとつけていたらかぶれました。 Apple Watchでかぶれた— nya (@cathandnya) 2020年11月1日 仕方ないのでこまめにつけ外しすることにします。ソロループだとつけ外ししにくいので、ベリベリする安いバ…

Automatic preview updating paused

SwiftUI で Automatic preview updating paused というエラーが出てプレビューが表示されない場合の対処法です。 stackoverflow.com ↑に書いてあるとおりなんですが、 Run script phase でプレビューの時にスクリプトが実行されないようにすると直ることがあ…

Illustail 4.1.0

でてます。 IllustailCatHand.orgソーシャルネットワーキング無料apps.apple.com iOS14のWidgetを追加しました。任意のタイムラインの最新投稿を順番に表示します。 Widget やっと動いた pic.twitter.com/r5l50bkFYC— nya (@cathandnya) 2020年9月25日 ↑のよ…

iOS14でMultipeerConnectivity.frameworkがエラーになる件の解決編

www.cathand.app ↑のiOS14でMultipeerConnectivity.frameworkがiOS14実機でエラーになる件ですが、Appleのデベロッパーフォーラムに解決策が載っていました。 developer.apple.com Info.plist で NSLocalNetworkUsageDescription を追加する 以下のような NS…

PINRemoteImageでビルドエラー

App Extension と本体アプリの両方で PINRemoteImage を使っていると Archive に失敗することがあります。 環境 macOS 10.15.6 Xcode12 cocoapods 1.9.3 abstract_target 'main' do pod 'PINRemoteImage' ... target 'App' end abstract_target 'widget' do …

iOS14でMultipeerConnectivity.frameworkがエラーになる

近距離で P2P 通信ができる MultipeerConnectivity.framework ですが、iOS14 でエラーが発生する場合があります。 MCNearbyServiceAdvertiser や MCNearbyServiceBrowser 等が NSNetServicesErrorCode = "-72008"; 的なエラーを返します。 このエラーは Xcod…

BitriseでビルドしたAdHocバイナリがインストールできない

www.cathand.app ↑で作っていたけいさんカードアプリのビルドと配信を Bitrise と Firebase App Distribution で自動化したんですが、配信されたバイナリがインストールできません。 いろいろやってみた結果、 Xcode Archive & Export for iOS ステップの Re…

けいさんカード

1年生の算数の宿題でけいさんカードというのがあります。 ↑こういうカードを親が出して子供が答えるんですが、めんどいのでアプリにしました。 github.com 娘のiPhoneにインストールしたところ、勝手にやっているようです。 今後掛け算などにも対応していこ…

Ore2 2.6.0

Ore2CatHand.orgソーシャルネットワーキング¥250apps.apple.com Twitter の API 制限が解除されました。 ただし、API Key が変更になりましたので、再度ログインしてください。ログアウトせずにそのままログインするとタイムラインを引き継ぐことができます…

Ore2

以前、自分用にOre2というTwitterクライアントを作りました。 Ore2CatHand.orgソーシャルネットワーキング¥250apps.apple.com 何度かTwitterから謎のAPI制限を受けることがありましたが、その度連絡して解除してもらっていました。 ですが、1年くらい前に制…

OAuthConsumerをApp Extensionで使う

iOSでOAuthするライブラリで昔からあるやつなんですが、OAuthConsumerというのがあります。 cocoapods.org シンプルで使いやすいんですが、内部で - [UIApplication openURL:] を使っているのでApp Extensionでビルドが通りません。 他のライブラリを使うこ…

SwiftUIで全画面にしてviewがずれるとき

.edgesIgnoringSafeArea(.all) を使えない(使いたくない)Viewで 全画面表示したいときに↓のようにすると、 struct ContentView: View { var body: some View { ZStack() { Color.blue Text("Hello, World!") } .frame(width: UIScreen.main.bounds.width) …

SwiftUIのListでNavigationLinkを付けずにハイライトさせたい

SwiftUI で List のセルのタップを拾うとき、素直に NavigationLink を設定していればセルがハイライトされますが、 onTapGesture() 等でカスタムしたいときはセルがハイライトされません。 struct LandmarkRow: View { var landmark: Landmark var body: so…

Apple Pencil

iOS

初代 Apple Pencil が使えなくなりました。 Apple Pencil(第2世代)発売日: 2018/11/07メディア: Personal Computers iPad に繋ぐと設定画面等には出てくるんですが、外すと認識されず、描いても反応しない状態です。 初代 iPad Pro 12.9インチと同時購入し…