Archive for 10月, 2009

Time Capsuleを使ったバックアップでキーチェーンエラーを回避する

2009年 10月 05日 Published by under 管理

リビングに設置しているテレビ番組録画専用の Mac mini から次のような異音が聞こえた後 OS が停止し再起動を試みたが同様の症状のまま起動ディスクを認識しなくなったため、ハードディスクが発熱等の理由により逝ってしまったのだろうと判断し交換した。この機種で7200回転で且つ、録画と編集、iPhone 用にM4Vファイルの書き出しをかなりの頻度(週末等は同時もあったり)で繰り返していたので一年持たなかったのは少し教訓になった。

過去に数回ハードディスクの故障に遭遇しているが Time Machine による復帰の容易さは理解しており、Time Capsule を導入してからは外付け機器を子供に悪戯されることもなく、今回も OS の再インストール後はすんなり復帰できるものと思っていた。ところがネットワークを経由することによる遅さ(100GBの復帰に9時間)に加えて、復帰後に再度 Time Machine のディスク設定をする際に訪れた次のようなキーチェーンエラー -25293 に悩まされる事になったのでその解決までに試した事を作業順に記録しておく。

キーチェーンエラー -25293

  1. /Library/Keychains/Syetem.keychain ファイルの削除。その結果エラー番号が-25307に変わっただけだったので戻す。
  2. AirMac ユーティリティの手動設定を使った Time Capsule パスワードの再設定と再起動。エラー内容はそのまま。
  3. ディスクユーティリティを使ったアクセス権の修復。エラー内容はそのまま。
  4. OS の再起動後に何故か Time Machine ディスクの認識に成功。

具体的にどの操作が決め手となったのか特定することはできないのだが、Apple Discusion を見ていると様々な状況により異なるようなので上述のようなことは順番に行う必要もなく、一手試しては確認することを繰り返すことが(面倒だが)最善の手だと思う。

キーチェーンが引き起こす様々な問題についても過去に同一ドメインによる複数のベーシック認証情報を保持できないことを書いたが、Google で検索してみると同様のエラー番号を出力する問題が Mobile Me (iDisk) サービス等でも発生するようなので同じ事を試す価値があるかもしれない。

コメントは受け付けていません。

XcodeでJavaScriptを外部ファイルとして扱う

2009年 10月 02日 Published by under 開発

UIWebView を使い iPhone のウェブアプリケーションをネイティブアプリケーションとして構築していると、Canvas 描画やタグ出力、Sqlite の扱い等、膨大なコード量になる JavaScript は次の様にしておくとプロジェクトの管理が楽になるのはウェブ開発者であれば誰もが思うところだが、そのままビルドすると Xcode は JavaScript をコンパイルしてしまい外部ファイルとして認識しないという問題がある。

<script src="xxx.js" type="text/javascript"><!--mce:0--></script>

そこで Developer Forums を覗いてみると、次のような回避策が紹介されていたので試してみた。

So you need to do two things – select the .js file in your project, and turn off the checkbox that indicates that it is compiled (the “bullseye” column).  If you don’t do this, you’ll get a warning in your build log about being unable to compile the file (which should be your first warning – always try to figure out and and correct any and all warning that appear in your build).

Then drag it and drop it in the target’s “Copy Bundle Resources”.

引用元: Developer Forums Beta: UIWebView and JavaScript ….

  1. 外部ファイルとして HTML に読み込みたい JS ファイルを選択し、表示メニューから詳細コマンドを選択する。(この詳細表示とエディタの間にあるハンドルをマウスで下方へドラッグしても良い。)
  2. ターゲットのチェックボックスを外す。ターゲットのチェックボックスを外す
  3. グループとファイルのターゲットからアプリケーション名ツリーの中にあるバンドルリソースをコピーに対し対象となる JS ファイルをドロップする。JS ファイルをドロップする

これで Safari ブラウザ等のデバッガと連携する JavaScript プログラムの管理や分業がより容易なものになり、加えて jQuery 等のライブラリも自由に扱える事で開発の効率が上がるのは間違いない(はず)。

更新:Xcode 3.2で検証した結果、チェックボックスのチェックが自動的に復活しているにも関わらず動作しているので手順1と2は不要かもしれない結論に至った。単にバンドルリソースとすれば良いらしい。

コメントは受け付けていません。