iOSのbeta版のインストール方法
※注意事項----------------------
OSはアップデートすると元に戻せなくなるので、
開発用で事前に入れておきたいもやApp Storeにあがってないものは
入れてからアップデートするように!
----------------------------------
①まずはapple Developerにログイン。
②Home画面のiOS Dev centerへ行き、
iOS6 | iOS6.1SDK beta
というところでbetaの方を選択すると
XcodeとOSのbeta版たちがいるので、
OSからアップデートしたい端末に合わせたSDKをダウンロード。
※機種とキャリアでSDKが異なるので、どちらかわからない場合両方DL
(Xcodeのアップロードは色々大変なのでOSのみ)
③DL後、ファイルを解凍して、Finder内のどこかにファイルをコピる。
④最新版のiTunesで、端末を接続し、
optionキーを押しながらiTunes上のアップデートボタンを押す。
⑤Fiderが開くので、先ほど解凍したSDKを選択する。
(「互換性がない」と言われたら、②のSDKはずれ)
⑥しばらく待ったら完了!
OSの最新版で自分のアプリに関連しそうな機能などは
ググると他の人がすでに情報を提供してくれてることもあるので
調べながらやるとテストも効率的★
特に設定画面まわりとかはよく見るように!
プッシュ通知
プッシュではまった。
といっても端末側の実装にミスは無かったんやけど。
[[UIApplicationsharedApplication] setApplicationIconBadgeNumber:-1];
[[UIApplicationsharedApplication] cancelAllLocalNotifications];
という処理を書いているのに消しても消してもバッジが復元する
という気持ち悪い現象が止まらず。
ログでは
aps = {
badge = 1
}
っていうのを2分おきくらいに定期的に受け続けてる。
apnsのサーバーに残ったゴミが送られ続けてるのか?
でもググっても全然そんな情報出てこないぞー!
なんだこいつー!何者だー!
ていうかbadgeの実装方法についての情報ってそんな無いぞー!
消すって至ってシンプルな処理しかないやんー!(i□i)
てかなり悶絶した。
結局原因はサーバーから1分おきにbadge = 1という謎のプッシュを送っていたことやったけど...。
それをストップさせたら無事バッジ消せたのでよかった。
(もっと早く検証してくれたら苦しまずに済んだ。つらたん。)
それ以外でへんだったのは、
developer centerで
→プッシュ通知の証明書発行して、
(このへんもキーたらなんたらむずかったー)
→アプリIDは無事発行できて、
→そのアプリからprovisioningファイルも無事作成して、
→デバック端末はselectAllにして、
→はい、OKー!
→無事tokenも取得できて、
→「さあて、開発用端末をもう一台追加するかね!」
と追加してprovisioningを再DLしなおすと...
→「Appの有効な”aps-environment”エンタイトルメント文字列が見つかりません」
えええええええええヽ(´c_,`)ノ;;;;
まってくれ。
そんな。1台追加しただけでtokenとれんくなるとかおかしいやろ。
ってことでしょうがないので毎回とれなくなったら
devloper版とadhoc版とrelease版の3つのprovisioningファイルを一旦削除して、
3点セットで作り直して、
再びDL...としたら、無事復活。
どゆこっちゃ。sandBox環境だから?
てかそもそもprovisioningファイルってこんな頻繁に作り直して良いものなのか...。
このへんな挙動の原因として考えられるのは、
しいてあげるとするなら、
provisioningを作成する際に
アプリを選択するとこの上にcertifictionみたいな?作成者みたいな?(うろ覚えやけど)
欄があって、そこんとこにまったく同じ名前で2人登録者がいるんですよね。
まったく同じ名前やからどっちが本当のアカウントなのかよくわからないけど
とりあえずどっちかわからないのでSelectAllにしてますよね。
ここらへんがあやしいくさい。
まあ、とりあえずrelease版でプッシュが届くかは、
appStoreからDLするまで本番用tokenが発行されないということで
検証もできませんが、
届いてくれることを祈るのみです。...ふう。
文字列の取り出し
artistIDとかCollectionIDとか簡単に取り出せるんやけど、
iTunesRSSのほうからやと
ダイレクトにそれらを取り出すことはできません。
楽曲名と歌手名はダイレクトに取り出せるんやけどね。
IDプリーズ!
てことで、URLの中から若干荒技で取り出してみました∩(´∀`)∩
とりあえずこのURLをたたきます。
http://itunes.apple.com/jp/rss/topsongs/limit=100/json
すると文字がずらああぁ..!!と並んでいますね。
これはjsonなので、普通に欲しい情報を取り出すだけならば
valueForKeyで取り出して取り出して..ってやればとれます。
キーで階層を深堀していくわけです。
ほんで!
今回わたしは「アーティストidとコレクションidを取り出してね」
との指令を受けました。
ですがこのパラメータ、SearchAPIだと簡単に取り出せるのですが、
RSSのほうには存在しません。
ですがよお〜く見てみると、
どうやらアーティストidは
@"im:artist">@"attributes">@"href"に書かれているURLの
https://itunes.apple.com/jp/artist/kyaripamyupamyu/id448331160?uo=2
id448331160っぽい!(=ぱみゅたん)
さてさてではこいつだけ取り出さなきゃね...
きっとNSStringで何かいいメソッドがあるはずだ!!
と思って検索してみたものの...それっぽいのが...ない...
だから手順をかけて無理くり取り出してみました。
はい、どん!
// アーティストid
NSString* artistHref = [[[data valueForKey:@"im:artist"] valueForKey:@"attributes"] valueForKey:@"href"];//アーティストURL
NSArray* artistSprByID = [artistHref componentsSeparatedByString:@"id"];//"id"でまず区切る
NSString* artistFromID = [artistSprByID objectAtIndex:1];//2個目のオブジェクトにid以下が入ってる
NSArray* artistSprByQmark = [artistFromID componentsSeparatedByString:@"?"];//そっから"?"で区切る
NSString* artistID = [artistSprByQmark objectAtIndex:0];//1個目のオブジェクトに入ってるのがartistID
[musicData setArtistId:artistID];
componentsSeparatedByStringってのが
指定した文字のとこでばつーんと区切ってくれるメソッドということで
これでまずid以下を取り出しまして、
さらに同じ処理を書いて?以下を取り出すと、
目的の数字だけが取り出せましたヽ(´ω)ノ♪
(若干手順はふむけど&他にもっといい方法もありそうな気がするけど!)