ラベル iTunes の投稿を表示しています。 すべての投稿を表示
ラベル iTunes の投稿を表示しています。 すべての投稿を表示

2014/10/26

iOSデバイスでプロセス ATC がクラッシュしてしまい、ミュージックの同期がキャンセルされてしまう

備忘録がてら。
チラ裏程度のものなので、自分が分かるようにしか書いてないです←

起こっている状況はタイトルのまんま。
iOSデバイスでiTunesと同期している時にプロセス"ATC"がクラッシュしてしまい、ミュージックの同期がキャンセルされてしまう。
自分の環境では、症状が発生しているのはiPhone5S。しかし、同じ曲を同期しているiPadにはなぜか普通に同期できるのだが。まぁ、どうせなんかの環境ファイルあたりが悪さしてるんだろう。

SafeModeにしてみたけど
ATCがクラッシュしている
JBしていることもあり、セーフモードに切り替えたら何とかなるかと思ったけど、そうでもなかった。

原因はSyslogを見る限り、ミュージックの同期をする際に/var/mobile/Media/iTunes_Control/Music以下のフォルダにアクセスしようとするとき、不正なパスを指定したということでプロセスが強制終了されてしまうことによるもの。

今回は/var/mobile/Media/iTunes_Control/Music/F35/QPPZ.m4aにアクセスしたせいで強制終了されてしまったようだ。

iFileを使って該当ディレクトリを確認してみたが、そんなファイルは存在しない。
ひょっとしたらそれが原因かもしれないね。
上書きでもしようとしたけど、存在しないからエラー、みたいな。

ってことは、そのアクセスをしようとする同期の処理さえ回避できれば、きっとクラッシュせずに同期してくれるよね…?
つまり、エラーを起こす音楽だけ同期させなければ一応同期は続行してくれるだろう、と思うわけです。
とりあえずほかの音楽ファイルを同期させたいですし。

ってわけで、もう一度iTunesで同期を行い、問題を起こす音楽ファイルを特定するべくiTunesの中央上部に表示される同期のステータス表示とにらめっこ。
この辺は原始的だが仕方ない←

「同期をキャンセルしています」と表示される直前に同期中として表示されていた曲名と同じものを、ライブラリのミュージックからチェックを外してみる。

その後改めて同期を開始すると、何事もなかったかのようにミュージックの同期がすんなり行く。

もっとも、結局チェックを外した曲については同期できないままだが。
これについては、また後日対応を考えることにしよう。

そのチェックを外した曲も、iPadには普通に同期できてるんだよなぁ…
やっぱり解せない。

とりあえず、Syslogでヒントが得られたのがせめてもの救いか。
まぁ、あんまり役に立ってない気もするが。


追記:
いったんチェックを外した曲以外の同期が終わった後、チェックを外した曲に再びチェックを入れて同期したところ、なぜか同期に成功した。
もうようわからん…(´・ω・`)

2012/09/20

[現在は使用不可] iOS6リリースでもまだ間に合う!iOS5.1.1に戻す・初期化する方法

2012年9月24日追記:
2012年9月24日現在、この方法は使えなくなっています。
iOS5.1.1用SHSHの発行は、iOS6のリリースから約2日で終了してしまった模様。
そのため、iOS5.1.1のSHSHを保存している場合を除いて、どうやらダウングレードはできなくなったみたいです。
(iPhone Deb-Team の情報、ほかによる)
検索でたどり着いてこられた方には申し訳ありませんが、どうにもしがたいことですのでご了承頂きたく思います。

ちなみに、無理矢理この方法を実行しようとしても「不明なエラー(3194)」が発生してしまい、復元を行うことはできません。(エラーコードについてはこちら:http://support.apple.com/kb/TS3694#error3194)

以下、自分自身の記録として記事を残しておきます。
繰り返しますが、今となってはこの方法は使えませんのであしからず。



「iOS6にしてしまったけどiOS5.1.1に戻したい!」って人に朗報。
ということで、iOS5.1.1に戻す方法をご紹介です。

実は、最近自分の使っているJailbroken-iPhoneが不調で…
そういうわけで脱獄環境を保ちながらも一回初期化したいという事情でiOS5.1.1の初期化を行おうと思ったのだが、なんと今日はiOS6のリリース日。
そういうわけで、iTunesから復元をしようとするとiOS6で初期化されてしまう。
当然のことながら、iOS6ではuntethered Jailbreakができないんです。(分からない場合は読み飛ばすかググってくださいね^^)

そこで、今回自分はただ単にある意味での裏技を使ってiOS5.1.1で復元をしたんだけれど、これはもしかしたら単純に「iOS6にしてしまったけどiOS5.1.1に戻したい!」というケースでも使えるんじゃないか。そう思ったわけです。

ただし、この方法はiOS6リリース当日(2012年9月20日)に行った方法。
いつできなくなるか分かりません。
というのも、復元を行う際にはアップルによる認証が必要な仕組みになっているからなのです。
そして、現状では認証拒否になってしまうと古いOSに戻すことすらできなくなります。

ですから、その認証が拒否されるようになってしまえば、この方法は全く使えません。
(もっとも、最新版のiOS6のipswファイルを使って復元するのだったら有効だろうけれど)
うまくいったらラッキー、くらいに考えておいてください。
一応9月20日の19時頃に手元のiPhoneでやってみたところ、上手くいっていますが。


ではでは、前置きはこれくらいにしてサクッとiOS5.1.1で初期化する方法を書いていきましょう。

2012/04/14

iPod touchが突然ダメになったのでもがいてみた。

なんかとっても久しぶりだ。
まぁ、そんなのはいいんだけど、突然iPod touchが起動しなくなってしまった。

Jailbreak済、第四世代のiPod touch。自分じゃなくて家族が使っているものだが、諸事情により脱獄が必要だったりする。

家族曰く、気がついたら電源が切れてて、入れようとしたらこんな画面になったらしい。


2011/12/27

SQLite3.dllからプロシージャ エントリ ポイントが見つからないせいで問題が多発するので、対策を考えてみた

エラーメッセージ「AppleSyncNotife.exer - エントリ ポイントが見つかりません」


どーも。久々の技術ネタ。

ほんとは受験生だからこんなことやってる場合じゃないんだけど、ちょっと自分的にも困ってしまったので備忘録の意味でもポストしてみます。

さて。
あまり深く考えずにiTunesをアップデートしてしまったんだけれども、それからずっとこんなエラーメッセージが出るようになってしまった。

エラーメッセージ「AppleSyncNotife.exer - エントリ ポイントが見つかりません」
なるほど。
というわけで、解決法を下に記すので、もし同様の症状でお困りの方がいたら参考にしてもらいたい。


まぁ、WindowsマシンのほうでMobileMeが使えなくてもさほど影響ないから仕方ないか、と思ってっ放置してたら、こんどはこっちでも。

エラーメッセージ「PDANetPC.exe - エントリ ポイントが見つかりません」




ちなみに、PdaNetPC.exeというのは、脱獄犯が使えるテザリングアプリの一種ね。

さすがにテザリングができなくなるのはちょっと痛い。



その上、iFunBoxもこんなエラーメッセージを吐くようになった。
データ転送エンジン部分にエラーメッセージが表示されている。
iFunBoxに至っては、iTunesMobileDevice.dllが見つからないと言ってくる始末
どれどれ。
Failed to locate Apple Mobile Device Support, iTunesMobileDevice.dll is not found.
Install iTunes to fix it.
と書いてある。
なるほどね。
AppleMobileDeviceSupportのiTunesMobileDevice.dllが見つからないから、iTunesを再インストールしてくれ、と。

とりあえず、どうやらSQLite3.dllが破損しているか、アップルがビルドしたDLLが以前と変わったせいかはわからないが、なんらかの理由で必要な関数がSQLite3.dll内に見当たらなくて困っている様子。
iFunBoxに至ってはデバイスのDLLファイルまで死んでるらしい。

というわけで基本の再インストールをやってみた。
が、効果なし。
しかも、全てにおいて。

すでに入っているインストーラから修復インストールをやってみても、一回アンインストールした後にインストーラを落としてきてインストールしても、効果はなかったので、どうやらビルドされたDLLに関数が入ってないんだろう。(ただしあくまでも憶測)
ただ、ファイルが破損しているということは考えづらい。


案の定、iTunesとiCloudのアプリケーションはしっかり動いてるからね。
ついでに言えば、iTunesMobileDevice.dllなんか破損してたらiTunesが動かないはずだし、iPhoneの認識すらできないはずなのだ。

ゆえに、「AppleMobileDeviceSupportのiTunesMobileDevice.dllが見つからないから、iTunesを再インストールしてくれ」というiFunBoxのメッセージも、SQLite3.dllからプロシージャエントリポイントが見つからないせいで起きている可能性が高くなってきた。


っというわけで、仕方ないからこうなったらDLLファイルをリプレースするしかないよね、ってことでSQLite3.dllを探してみた。


案の定あるじゃない、本家本元(www.sqlite.org)のが。

やっとここからが本番。
お困りの方はここからの手順を参考にしてねー。

まずは、SQLiteの本家ホームページのダウンロードページにアクセスする。
(アドレス:http://www.sqlite.org/download.html)

まぁ、当然ながら英語だけどあわてずに行こう。
ページの真ん中あたりに、「Precompiled Binaries For Windows」って書いてあるセクションがあるから、そこのセクション内にあるsqlite-dll-win32-x86-3070900.zipってやつをダウンロードしよう。

ちなみに、3070900とかいう数字はリビジョン番号的なものだろうから、最新バージョンがリリースされてたらこの通りじゃないかもしれない。
ま、でもそれっぽい感じのzipファイルをダウンロードすればおk。

あとはデスクトップあたりにzipファイルを解凍してあげれば、最新版のSQLite3.dllが手に入るというわけですね。

ちなみに、本家からもってきた最新版のDLLにはデジタル署名は付いてないので、心配な人はSHAなりMD5をチェックしておいてもいいかもしれない。


残るはDLLファイルの更新なんだが、方法はいくつかあると思うんだよね。

一つは、System32の中にあるSQLite3.dllを書き換えてしまう。
もう一つは、Appleが絡みそうなプログラムフォルダの中にあるSQLite3.dllをを書き換えてしまうという方法。

一応確認してみたら、Windows\System32の中にあるSQLite3.dllは、2008/10/28付けのファイルなんだよね。
相当古い。
案の定、バージョン番号はわからなかった。しかもデジタル署名付いてないしww


対して、Appleのデジタル署名が入ってるSQLite3.dllのバージョンは、3.7.5。

この記事を書いてる今日(2011/12/27)現在、入手できるバージョンは3.7.9だから、結局のところ両方とも古いわけだ。ぶっちゃけ、両方書き換えたっていいかもしれない(笑


うーん、どうしようか。
System32のほうを書き換えちゃってもいいけど、何か問題が起きた時の対処が面倒なので、 今回はAppleが絡んでそうなほうを書き換えることにする。

というわけで、ダウンロードして解凍した最新版のSQLite3.dllを、下記のディレクトリにコピーする。

C:\Program Files\Common Files\Apple\Apple Application Support (上書きする必要あり)
C:\Program Files\Common Files\Apple\Mobile Device Support (普通にコピーするだけ)


ちなみに、コピーの前に、タスクマネージャーのプロセスタブからiTunesHelper.exeを「プロセスの終了」ボタンを押して終了させて、そのあとサービスタブからApple Mobile Deviceサービスを右クリック「サービスの停止」で終了させておくことを推奨。

もしかしたら、アクセス拒否されるかもしれないので。

それと、心配性な方はApple Application Supportのところにもともと入ってたSQLite3.dllを、SQLite3.dll.oldみたいな感じに、拡張子を変えるなどしてとっておいたほうがいいかもしれない。
そしたら、 上書きしなくて済むし。


とりあえず書き換えたら再起動してみましょう。

これでよくなってるといいんだけどな。 

ま、もしだめだったらSystem32の中にも新しいものをぶち込んじゃいましょうw


一応、自分の場合はうまくいきましたよ。MobileMeやPDANetのクライアントソフトも、iFunBoxも、全部。

もしこれでもダメだったら、素直にiCloudにしなさいってことなんだろうなって思っただろうけど←


しかし、こういう面倒事はできるだけ避けてもらいたいものだね、AppleもMicrosoftも。


そして、後から思った。
ぶっちゃけ、Mobile Device SupportのほうにはSQLite3.dllを入れる必要がなかったんじゃないのかな、って。(殴

でも、もう一回再起動するのは面倒なので入れちゃいました、自分は。

ついでに言うと、最新版のほうがきっといいよね、とか思ってついでにSystem32のSQLite3.dllも書き換えてしまった(笑)
万が一問題が起きたら元に戻そう。問題が起きる気配は全くないけど。


もし、そっちは入れなくても問題なかったっていう人がいたらコメントかなんかで知らせてくれるとうれしいです。
そのときは記事も修正するんで。

【訂正】2012/01/02 -- 冒頭に載ってた画像を、本来表示したかった部分にも表示するようにしました。また、iFunBoxのエラーメッセージ部分を、引用の形で表示するようにしました。そのほか、記事のタイトルを少し変更しました。記事の内容に関しては特段変更はありません。