【Swift】[強制アップデート] Sirenがうまく動かない時に試すこと
はじめに
個人開発の強制アップデート機能にSirenというライブラリをいれています。
数行書くだけで、サクッと実装できるので、おすすめのライブラリです。
また、ローカライズできることや更新頻度、AlertTypeをカスタマイズできるのもいいですね。
今回、実装するにあたり、うまく動かなかったので、その原因と対処法をまとめます。
Siren について
実装方法
以下が参考になりました。
- https://github.com/ArtSabintsev/Siren/blob/master/Example/Example/AppDelegate.swift
- https://qiita.com/ninoko1995/items/3e2e3898a49fdbb93e9f
動作検証
以下が参考になりました。
私は、AppStoreに既に公開していたので、ローカルのprojectファイルのバージョンを変更して検証しました。
まだリリース前の場合は、bundleIDをすでにAppStoreにあるものに変更すればいいみたいですね。
ライブラリのサンプルでは、FacebookのbundleIDを使用しています。
なぜ動かなかったのか
AppStoreの配信地域を日本限定にしていたのですが、ライブラリ内部でコールしている、AppStoreAPI の countryCode のパラメータのデフォルトが unitedStates になっていたため、そもそもアプリが存在していないという判定がされていたようです。
なので以下の一行を追加したら、ちゃんと動く様になりました!
Siren.shared.apiManager = APIManager(country: .japan)
全体のコードはこちら
import UIKit
import Siren
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Siren.shared.rulesManager = RulesManager(
majorUpdateRules: Rules(promptFrequency: .immediately, forAlertType: .force),
minorUpdateRules: Rules(promptFrequency: .immediately, forAlertType: .option),
patchUpdateRules: Rules(promptFrequency: .immediately, forAlertType: .skip),
)
Siren.shared.apiManager = APIManager(country: .japan) // !! この1行を追加
Siren.shared.wail()
return true
}
}
以上です!ご参考になれば幸いです!
動作環境
- Xcode 12.5
- Swift 5
Author And Source
この問題について(【Swift】[強制アップデート] Sirenがうまく動かない時に試すこと), 我々は、より多くの情報をここで見つけました https://qiita.com/yusinoue1008/items/3febce0b2892fbe93492著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .