iOS15でNavigationBarとTabBarのカラーを変更する
はじめに
iOS14までは普通に動いていたのにiOS15だとNavigationBarとTabBarのカラーがおかしくなってしまったので調べてみました
NavigationBarについて
現行の書き方
UINavigationBar.appearance().barTintColor = .white
どうやらこの書き方ではダメのようです
iOS15以降ではUINavigationBarAppearance
を使って指定する必要があります
let appearance = UINavigationBarAppearance() appearance.backgroundColor = .white appearance.titileTextAttributes = [.foregroundColor: UIColor.black] // タイトル文字色の変更する場合 UINavigationBar.appearance().standardAppearance = appearance UINavigationBar.appearance().scrollEdgeAppearance = appearance
この書き方で正しく動作するようになりました
TabBarについて
TabBarのほうは特にカラーを変更するようなコードは書いてなかったんですがおかしくなりました。
iOS15では同様にUITabBarAppearance
を使って指定する必要があります
let appearance = UITabBarAppearance() appearance.backgroundColor = .white UITabBar.appearance().standardAppearance = appearance UITabBar.appearance().scrollEdgeAppearance = appearance
結論
これで無事にiOS15でもNavigationBarとTabBarのカラーが正しく出るようになりました。 良かった。
参考資料
もみじさん ベランダタイム
今日ももみじさんは朝からベランダに出て気持ちよさそうです。
いまは暑くなるまでの少しの間しか出せませんけど。
なんかほっこりします。
横田バーチャル駅伝Tシャツ届きました
先日参加した横田バーチャル駅伝2021の参加賞のTシャツが届きました。 ひさびさの大会参加だったのでなんとなく嬉しいです。こういうのをもらえると大会に参加したって感じがします。
コロナ前よりかなり体力が落ちてしまってますが、また無理しない範囲でいろんな大会に参加できたらいいかな。
もみじさんのまったりタイム
もみじさんです。 お気に入りの段ボールベットで昼間はこんな感じでまったりとしています。 ダンボールのこのサイズ感がいいみたいです。
iOSのアプリ内課金を無償で公開する方法
はじめに
iOSのアプリ内課金コンテンツをプロモーションの観点から一時的に無償で公開したいケースがあります。 アプリで専用の仕組みを入れれば何かしらできるとは思うがもう少しスマートな方法がないものか。 調べてみるとAppStoreConnectに以下の機能があったので詳細を調べてみました。
- プロモーションコードによる公開
- お試しオファーによる公開
- プロモーションオファーによる公開
- オファーコードによる公開
プロモーションコードによる公開
アプリ内課金コンテンツに対してプロモーションコードを発行して、そのコードをユーザーに入力してもらうことにより購入したのと同様の状態にできる
- アプリ内課金コンテンツに対して最大100個リセット、合計1,000個まで作成可能(利用可能数は1/1と7/1にリセット)
- 非営利目的でのみ使用可能(コード自体が商材になる使い方は不可)
お試しオファーによる公開
アプリ内課金コンテンツに対してお試し期間を設定し、アプリ内課金コンテンツ購入者に購入直後から一定期間無償で利用させる
- 無償期間後に自動で有償コンテンツに移行
- 無償期間は1回のみ有効
プロモーションオファーによる公開
アプリ内課金コンテンツに対して、一定期間割引もしくは無償価格でアプリ内課金を購入できるようにする
- 無償期間後に自動で有償コンテンツに移行
- 対応するには別途アプリ側の実装が必要。プロモーションオファーとして購入処理を実行する必要がある
オファーコードによる公開
アプリ内課金コンテンツにに対してオファーコードを生成して、そのコードをユーザーに入力してもらうことにより購入したのと同様の状態にできる
- 四半期ごとに最大150,000 のコードまで生成可能
- アプリ内にコード入力画面を実装することも可能
比較
内容 | プロモーションコード | お試しオファー | プロモーションオファー | オファーコード |
---|---|---|---|---|
配布方法 | コードの配布 | 課金コンテンツ購入 | 課金コンテンツ購入 | コードの配布 |
配布数 | 100個まで | 制限なし | 制限なし | 150,000個 |
用途 | 非営利目的のみ | 一般ユーザー配布可 | 一般ユーザー配布可 | 一般ユーザー配布可 |
アプリ実装 | 不要 | 不要 | 必要 | 不要(実装すればアプリ内でコード入力も可) |
結論
それぞれ制限事項は配布方法が違うため用途によって使い分けるのが良さそうかなと思います。
参考資料
backapp.co.jp tech.dely.jp https://help.apple.com/app-store-connect/#/deve1d49254f
Xcode で Signing Certificateがエラーになる問題への対応
はじめに
XcodeのSigningで警告が出るケースがあったため調査してみました。
基本は自動設定でOKのはずなんですが、以下の警告が
[App] has conflicting provisioning settings. [App] is automatically signed for development, but a conflicting code signing identity Apple Distribution has been manually specified. Set the code signing identity value to "Apple Development" in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.
結論
ネットでいろいろ調べてみましたが、警告メッセージにある通りcode signing identity
をApple Development
にすればOKでした。
本番ビルド用だとApple Distribution
にしたくなりますがSigning
を自動設定にする場合はApple Development
に設定する必要がありました。
そういうことか。
参考資料
横田バーチャル駅伝2021本日よりスタート
本日からスタートです。 バーチャルの大会は初参加なのでどうなるのでしょうか。
TATTAってアプリを使うらしいんですがAppleWatchとかRUNNETとかと連携してあとは走るだけでいいみたいです。 きちんと記録してくれるか不安。
最低10km走らないといけないらしいですが、週末天気の良い日が続くことを祈るばかりです。 yokota-ekiden.com