末長くよろしくお願いします。
復活しました
色々あって長い間潜っていましたが、皆さんのご協力のおかげでシャバに帰ってくることができました!
CocoaPodsを使用しているとXcode 14.3でアーカイブできないじゃん
Xcode 14.3がRelease Candidate版になったので拙作のアプリをアップデートしようと思ったんだけど・・・リリース用ビルドが通らない。デバッグビルドなら通る。
なんだこれ?と思ってググったらCocoaPods側の問題というか、Xcode 14.3への対応がまだできていない感じのようです。GitHubにissueが上がってました。
コメントにワークアラウンドが書いてあります。その通りにやればビルドできるようになりました。まぁ手動でスクリプトを直すの正直めんどいけど。
早く修正・公開して欲しいところですね。
CocoaPodsに依存しすぎ?
どうしてもサードパーティなのでXcodeのアップデートに対応しきれないケースが出てきます。私は以前Carthageも併用してたのですが、今回と似たようなトラブルがあった時に使うのやめました。今はSwift Package Managerがメインです。早くCocoaPodsも辞めたい。
今回の回避策
→ シェルスクリプトを一部書き換えることで解決しました。
続報
4月19日にアップデートされて修正されていました!
https://github.com/CocoaPods/CocoaPods/tree/1.12.1
なにげに半月以上かかってますね・・・遅すぎ。
Android Studio で Github ログインできなくて泣きそうになる
Appleがクリスマス休暇に入ったこともあり、久々にAndroidアプリのメンテをやるのだ。
Pixel とか引っ張り出してきて充電。お、Android 12 が降ってきてるので入れちゃお。
Android Studioをアップデート。SDK Manager でもろもろ最新化。
Android Studioをクリーンインストール
調子が悪くて VMOptionの設定弄ってたら起動しなくなった。再インストールしても全然起動しない。しょうがないのであちこちに分散している設定も全消ししてクリーンインストールしよう。
なんとか復活。
GitHub連携もなくなってる
リセットしたのだから当たり前か。
Preferences > Version Control > GitHub からログインすればいいのかな・・・
ところが! Jet Brainのログインページに飛ばされるだけで全然ログインできない。
パスワード認証じゃダメらしいので トークンを再発行して入力してみたけどそれでもダメ。
なんやこれ。
代わりに・・・
Welcome to Android Studio の画面から Get from VCSのボタンを押して GitHub のところからログインできた。
プッシュ成功。
Android 辛すぎ。
UISaveVideoAtPathToSavedPhotosAlbum の挙動が iOS 15 で変わっちゃった
iOS/iPadOS でビデオを作成して システムのフォトライブラリに追加するケースです。通常は PhotoKit を利用するのが良いです。
PhotoKit を利用するとファイル名がDCF形式(例: IMG_0123.mov)にならない
いや、Assetを Createするときにファイルじゃなくて Data を渡せばDCFになるような気がするが、長時間録画の場合などにデータを渡すのは現実的ではない。モバイルデバイスのメモリは有限だ。やはりファイルを渡すしかないでしょう。
でも、やはりDCF形式にしたい。
UIKit の UISaveVideAtPathToSavedPhotosAlbum
という レガシーAPIを使えばDCF形式になる。
ちょっと古くてSwiftyじゃないけどまだ非推奨にはなっていないし、まあ使える。と思ってたのだが・・・
iOS 15 から ファイル名がDCF準拠じゃなくなった
残念。Appleは このAPIを見捨てたのか?引数にファイルを渡すインターフェースなんだけど、そのファイルの名前が付けられてしまう実装仕様に変えられてしまった。
ということで、今後は UIKit の方を利用する理由がなくなりました。
しょうがない。PhotoKitに書き換えるか。時代がそういうなら仕方ない。
setImageUri() か setImageBitmap()
Androidで UIImageView にローカルファイルから画像を設定したい時。
何も考えずにやるとこうなる。
val bitmap = BitmapFactory.decodeFile(file)
imageView.setImageBitmap(bitmap)
(とりあえず sampleSizeは考慮しない)
でもわざわざビットマップを生成するのも冗長だよな、と考えたりして、
imageView.setImageUri(Uri.fromFile(file))
これでいいじゃん?
だけど一応公式のリファレンスをチェックしてみたら、
This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's a concern, consider using
setImageDrawable(android.graphics.drawable.Drawable)
orsetImageBitmap(android.graphics.Bitmap)
andBitmapFactory
instead.
って書いてあってうわぁってなった、のでブログに記録して忘れないようにしよっと。