iOS
iOS17 にしたら tableHeaderView に入れた searchController がバグって表示されるようになってしまった。 iOS17めっちゃバグるやん pic.twitter.com/DO7ewmgVBh— スターホシ (@star__hoshi) October 5, 2023 最初は hidesNavigationBarDuringPresentation …
リリースビルドの時だけ何故か no such module 'XXXXX' って出てこまってたけど、 Framework Search Paths が Release の時だけからになってた。 この Project では CocoaPods を使っている。 Release に $(inherited) を設定したらビルド通った。 リリース…
タイトル以上の情報はないんだけど1日3回もリリースできて感動しました。特急審査より早いレベル。 v1.1.1 を 11/18 09:42 に審査提出 11/18 23:28 に審査完了 -> 11/19 04:43 にリリース v1.2.0 を 2022/11/19 05:09 に審査提出 11/19 05:47 に審査完了 -> …
iOS アプリ開発をしている時、Simulator の中身のデータを参照したいことが稀によく発生する。 でも Simulator への Path は毎回忘れてググることになるし、ディレクトリも謎の文字列になっていて簡単には辿り着けない。 そういう時に OpenSim というアプリ…
個人開発のアプリを CocoaPods から Swift Package Manager に移行した。 やることはシンプルで $ pod deintegrate して、Xcode の Package Dependencies に Podfile にあるライブラリを追加していくだけでよい。 なのだが、同時にM1Macへの移行やiOS15対応…
Flutter で画面回転を無効にし縦固定にしたい、としてググると SystemChrome.setPreferredOrientations を設定しろと出てきたりする。 しかし、これだと splash screen は横で表示されてしまうので良くない。AndroidManifest.xml や Info.plist で設定する方…
朝からこんなエラーが起きてて、特に設定変えたりした覚えもないけどなんだろうなあと思ったけど証明書再作成で直った。 Error uploading ipa file: [Transporter Error Output]: ERROR ITMS-90165: Invalid Provisioning Profile Signature. The provisioni…
iOSアプリ(もしくはFlutterアプリ)を開発するとき、iOS Simulator は iPhone を使うより iPad を使うと色々な画面サイズが簡単に確認できて便利。なお、iPadアプリに対応していることが前提。(この開発方法は前職の同僚がやっていた) iPhone だと固定サイズ…
support.google.com admob 審査・承認プロセス追加そんな変わった感無いが・審査期間は広告配信無し・通常は24~48時間で審査完了・承認されれば広告出る・不承認ならポリシーセンターの内容解決して再審査出してね・リリース前のテストはテストモード、テス…
iOS には Readable Content Guide という考え方があり、iPad などの大きな端末では横幅いっぱいにコンテンツが表示されないようになっている。 参考: iOSでの読みやすい幅 - クックパッド開発者ブログ Flutter で iPad を意識せず実装するとボタンが横に間伸…
Xcode11 から Resource の Localization ができるようになった。 https://help.apple.com/xcode/mac/11.0/index.html?localePath=en.lproj#/dev7c584bb2a やり方は簡単で、まずベースとなる言語のファイルを追加、Localization の設定、Localize 用のファイ…
これの Share 先に自分のアプリを表示させて、保存などの処理を行う。 やることは Target 追加 App Groups の設定 証明書の修正 Podfile 修正 新しいTargetの Info.plist 修正 ShareViewController の実装 データの保存先について Simulator で確認 です。 T…
lane :upload_latest_dsyms do download_dsyms(version: "latest") upload_symbols_to_crashlytics clean_build_artifacts end を実行したら、こんなエラーが出た [22:29:22]: ------------------------------------------- [22:29:22]: --- Step: upload_sy…
個人プロジェクトを Xcode10 対応してたらこんなエラーが出た。 :-1: Multiple commands produce '/Users/hoge/Library/Developer/Xcode/DerivedData/KotaichiDex-eiyecmvfctikcwcspitwpzskudue/Build/Products/Debug-iphonesimulator/PokemonRealm/PokemonR…
【Swift】文字認識ライブラリ、TesseractOCR for iOSを試してみた - Qiita に使い方があるが、少し古かったので Xcode9.4, Swift4 で動かすための手順。 Podfile pod 'TesseractOCRiOS', '4.0.0' そして pod install、終わったら xcworkspace を開く。 Build…
Xcode 9.3 でプロジェクトを開いただけで Hoge.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist というファイルが作られた。 Release Note を見ると以下のように書いてある。 Xcode 9.3 adds a new IDEWorkspaceChecks.plist file to a workspace's shar…
Firebase HTTPS callable function を試してみる に使い方は書いたが、素のまま SDK を使うのは厳しいので APIKit っぽく Endpoint を定義できていい感じに Function を叩けるようなライブラリを作った。 github.com endpoint の path と Decodable な Respo…
イケてない JSON を Swift の Decodable で扱いやすいモデルにデコードする の続き。 今度も last.fm の user.getRecentTracks を Decode していく。 尚、文字を打つのが面倒になったためこの記事はあらゆる説明を省略している。 JSON これを decode してい…
last.fm というサービスがあって、API も公開されているのでそれを Swift で使っているのだが、JSON の構造がイケてなくて苦労している。 こんな感じの JSON があったとする。 { "user": { "name": "RJ", "age": "20", "image": [ { "#text": "https://lastf…
プロモコードでのテスト iOS アプリには「プロモーションコード」を利用することでリリース直前のアプリをテストすることができます。 やり方は簡単で、 App Store からプロモーションコードを入力してアプリを DL するだけです。 プロモコード版を入れたと…
iOS9, iOS10, iOS11 をサポートしていたのを、iOS11 のみサポートするように変えた。 そして申請しようとしたらエラーがでた。 ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequir…
$ ssh my@mac.com $ bundle exec fastlane match ... [12:19:58]: Enter the passphrase that should be used to encrypt/decrypt your certificates [12:19:58]: This passphrase is specific per repository and will be stored in your local keychain [1…
testnight.connpass.com iOS Test Night #6 にブログ枠として参加したので、そのレポートです。 ㊗️ 1周年 開始前の挨拶として、Qiita に投稿された iOS のテスト関連の記事がこの一年で増えたのか? という話から始まりました。 結果として、増えはしたけど…
iTunes Connect にバイナリのアップロードは完了したんだけど、 iTunes Connect: Processing stopped for HogeApp みたいなメールが来た。 何か問題があって bitcode の再コンパイルが止まってしまったようだ。 メール全文: iTunes Connect: Processing stop…
Unable to process application at this time due to the following error: This bundle is invalid. The Info.plist file is missing or could not be parsed. Please check it for embedded control characters.. iTunes Connect にバイナリアップロードし…
Xcode で環境別にコンパイルするために Staging の Configuration を作ったんだけど、 -D STAGING を指定しても #if STAGING が false になっていた。 なんでかな〜 って設定眺めていたら、 Active Compilation Conditions が Debug になっていたのが原因だ…
import MediaPlayer ... override func viewDidLoad() { super.viewDidLoad() let player = MPMusicPlayerController.systemMusicPlayer player.setQueue(with: MPMediaQuery.songs()) player.play() } これで音楽が再生できたんだけど、再生開始した瞬間に…
TestFlight という、アプリのベータ版などを配布する Apple 純正のサービスがある。 TestFlight - Apple Developer これのいいところは「リリースするアプリと同じアプリをテストできる」というところ。 実際にユーザが使うアプリと同じもので動作確認ができ…
ここ最近は Apple の審査が早いけど、致命的なバグなどを出してしまったら急いでレビューして欲しい、そういう時のために apple expedited review というのが用意されている。 これを使うと優先的にアプリをレビューしてくれる。 しかしこれには注意が必要で…
段階的リリースとは WWDC2017 で発表された機能。 1%, 2%, 5% ... 100% と限られた人から段階的に自動アップデートされていく。 新機能のテストや、バグが起きてないかなどの確認で使えそう。 Apple 公式ヘルプ 自動アップデート用の段階的リリース(iOS、wa…