バージョンアップ版があることを通知する
公開日:
        
        :
         最終更新日:2017/07/18        
        Tips        Obejctive-C, バージョンアップ, ライブラリ        
      
拍子抜けするほど簡単だったので、「アプリのバージョンアップの通知をどうするか」という話についてTipsを
自力でコードを組もうとした
iTunes App StoreにはAPIがあって、@”https://itunes.apple.com/jp/lookup/?id=(アプリID)”にアクセスするとアプリケーションの情報をJSONで返してくれる親切さ。バージョンや対応プラットフォーム、最低OSバージョンも含まれるので、それの比較をすればいい。比較方法については強火で進めさんの記事なんか参考に。
問題はデイバス名。調べると「このAPIで取れるデバイスString」と「アプリ側で取れるデイバスString」が一致しないらしい。変換ロジックを組まないといけないとかファッキンな状態で、ライブラリもあったんだけどiPhone7系に対応してないとかメンテの不備がありありと見える…というところで心が折れました。
ライブラリを使う
そしたらArtSabintsev/Harpyというライブラリがあって、それ使うのが簡単そうなんですよね。日本語を含む多言語対応までしてて、極めてありがたい。
ということで今まで作った俺コードを全部破棄してHarpyを使うことにしました。
(共通)Podfile
ごく普通にPodfileに追記します。
  pod 'Harpy'
AppDelegateあたりに組み込む
起動ごとにチェックをかける(スキップも可にして、うるさく聞く場合の対策にする)ならこんな感じ。
        // --- スキップ可(更新/次回にする/スキップする の三択)
    [[Harpy sharedInstance] setAlertType:HarpyAlertTypeSkip];
        // --- 表示するViewController
    [[Harpy sharedInstance] setPresentingViewController:self.window.rootViewController];
    // --- アプリ名(日本語の文脈なので「本アプリ」と入れた)
    [[Harpy sharedInstance] setAppName:@"本アプリ"];
    // --- AppStoreを見るときのロケール(今回は日本のみアプリなのでこうした。本体Localeを取得して合わせるべきかもしれない)
        [[Harpy sharedInstance] setCountryCode:@"jp"];
    // --- チェックして、表示する場合はアラートを表示
    [[Harpy sharedInstance] checkVersion];
実に楽ちんでした。
参考
関連記事
-  
                            
                              - 
              
iOS7でカメラ撮影時のステータスバーを消す
UIImagePickerControllerをカメラモードで表示するとステータスバーがカメラの一番
 
-  
                            
                              - 
              
App Storeのページにアプリケーションから直接アクセスする方法
去年(2013年)の秋ごろ、iOS7の出始めの時期に書かれたblog記事などを参考にすると、iOS6
 
-  
                            
                              - 
              
HTMLParserを修正する
HTMLスクレイピングしてる時に役立つライブラリであるObjective-C-HMTL-Parser
 
-  
                            
                              - 
              
AVAudioPlayerの初回再生遅延
ちょっとした効果音の再生にAVAudioPlayerを使っているのですが、どうも初回の効果音ロードの
 
-  
                            
                              - 
              
NSDictionary/NSMutableDictionaryの”valueForKey:”と”objectForKey:”の違い
表題にある通り、似ていて混同する(そして、取り違えても「たいてい」普通に動作する)NSDiction
 
-  
                            
                              - 
              
UITableViewのセルセパレータが画像の下部分だけ切れる場合の対応
iOS7のUItableViewCellだと、UITableView.imageViewに画
 
-  
                            
                              - 
              
Xcode8で余計なログを抑制する
Xcode8に更新してから、妙にログが増えたので、NSLogで明示したのと実行時エラー以外のログを吐
 
-  
                            
                              - 
              
iOS8のシミュレーターでLocalizationのテストをする
iOS8.1のシミュレーターでは、従前できていたシミュレーター内での「設定」(Setting)からの
 
-  
                            
                              - 
              
”No Scheme”になってしまった場合の対応
知人がXcodeで突然「No Scheme」表示になってRunするターゲットとデバイスが選択できない
 
-  
                            
                              - 
              
CALayerの管理
CALayerはNSKeyValueCodingを実装している(Core Animation Ext
 
