「開発系」カテゴリーアーカイブ

開発関連

OSX MavericksでApache使うときの覚え書き

とりあえず以下の3つ覚えておけば何とかなるかと。

$ sudo apachectl start
$ sudo apachectl stop
$ sudo apachectl restart

というかマニュアル見た方が早い?

$ sudo apachectl -man
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
                       [-C "directive"] [-c "directive"]
                       [-k start|restart|graceful|graceful-stop|stop]
                       [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
  -S                 : a synonym for -t -D DUMP_VHOSTS
  -t -D DUMP_MODULES : show all loaded modules 
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
  -T                 : start without DocumentRoot(s) check

上記マニュアルには載ってないけれどconfigtestも使えるみたいです。

$ sudo apachectl configtest
Syntax OK

Mac版 Google Chrome の Local Storage の場所

JavaScriptの開発にはJetBrains WebStormとGoogle Chromeの組み合わせが最強だと信じて疑わない自分です。おかげでFireFox全然使わなくなっちゃいました。

で、今回開発環境を引っ越す必要があり、Local Storage使い回せないかなーと少し調べてみました。目的のファイルは

~/Library/Application\ Support/Google/Chrome/Default/Local\ Storage/ 

にあります。Local Storageを生成したサイトのURL毎に作成されているのですぐ分かると思います。

ShareMarker 1.00 リリースしました

今月半ばに申請を出していたiPhoneアプリ「ShareMarker」がようやく受理されました。

ShareMarker
カテゴリ: SNS
価格: 無料 App

実際にアプリを申請された方のブログなどを拝見していますと、通常アプリケーションをiTunes Connectに送信してからレビュー開始までに1週間程度待たされるものの、実際にレビューが始まると約1日くらいで結果が分かると書いてあったのですが、ShareMarkerの場合、レビュー開始までに1週間、その後レビュー完了までさらに2週間を要しました。最初だから時間がかかったのか、画面遷移が多いのでレビューに時間がかかったのかは不明ですが、ここまで2週間ずっとモヤモヤしていたのでとりあえずホッとしたというのが正直な感想です。

せっかくなので、アプリの宣伝をちょこっとだけ。

ShareMarkerは自分だけが知っている(はず)お気に入りの場所を共有するサービスです。
気に入った場所・お店を見つけたら、写真を撮って、コメントを書いて、地図上に貼り付けることで友人達と情報を共有することができます。

こうしたサービスは、例えば大手サイトなどでも似たようなものを見かけたりしますが、個人的な狙いとしてはもう少しローカルな、地元の人たちが気軽に訪れる場所とかお店をメインに集めていきたいと考えています。

現在は札幌市内、特にすすきの周辺(笑)のお店情報が充実しているわけですが、狙いがローカルなのでこんな感じになります。こういう小さな輪が、全国あちこちに広がればいいなと考えています。

久しぶりに帰省した友人連れて飲みに行くときに「あの店どこだっけな」的な使い方をしてもらったり、友人が旅行先で投稿したマーカーを見て「へえ、素敵な場所だな」と興味を持ってもらえたら最高ですね。

アプリ的には機能に関してまだまだ不親切な部分があるのと、友人間での情報共有の手段をもっと充実させないといかんなあと思っています。
使ってみての感想・要望などあればコメントお願いします。

AppStore経由でのXcode 4.2アップデートにハマる

Xcode4から、入手先がAppStore経由でのダウンロード方式に変わったわけですが、これで見事にハマりました。
正確にはXcodeではなくAppStoreなんですが。

Xcode4.2にアップデートしようとしたものの、1.8GBもあるファイルを一気に落としきれず、一旦中断。
ダウンロード途中のファイルは一時フォルダに格納されてレジューム状態に入るため、再開すれば中断した状態からダウンロードが再開される・・・はずだったんですが、これがいつまでたっても再開しないのです。

AppStoreを立ち上げ直したり、アカウントをサインアウト&サインインしてみても効果なし。
AppStoreのメニューには[Store]→[ダウンロードが完了していない項目があるか確認…]という、いかにもそれらしい項目は存在するのですが、こちらをクリックしても「全てダウンロードされています」と表示されるだけ。

諦めてXcode4.1で開発続けようとも思いましたが、残っている作業はiOS5での実機テストだったので、SDKがないことにはインストールもできません。ほとほと困ってしまいました。

で、ひょっとしたらレジューム状態の一時ファイル消しちゃえばいいんじゃない?と思いついたわけです。

結果的にこれがアタリだったわけですが、まず一時ファイルの格納先がわからず調査。
するとAppStoreにデバッグモードなんてナイスなモードが存在することが分かりました

Where does the Mac AppStore download temp files to
http://www.ryanragle.com/index.php?/site/comments/where-does-the-mac-app-store-download-temp-files-to

具体的には、ターミナル上から「defaults write com.apple.appstore ShowDebugMenu -bool true」と叩いてからAppStoreを立ち上げると、メニュー最後尾に「Debug」が追加されます。ここから「Show Download Folder…」を選択すると、ファイルの格納先が表示されます。私の環境では「/private/var/folders/0s/[英数字の羅列]/C」というパスでしたが、このあたりは環境によって異なってくるかと思われます。

で、そのフォルダ直下にあった「com.apple.Xcode.501」フォルダをまるっとゴミ箱へ放り込み、AppStoreを起動します。
すると「アップデート」のアイコンに「①」というバッジが表示されており、クリックするとXcodeがダウンロード開始をゼロの状態で待ち受けていてめでたしめでたし、というわけでした。

ちなみにインストール完了後、自動的にXcodeが4.2にアップデートされるわけではなくて、アプリケーションフォルダにある「Install Xcode.app」を起動することでXcode 4.2への更新が始まります。なんで?って感じなんですけどね。恐らくはAppStoreのレジューム機能を活用したかったのではないかと邪推するわけですが、それにしても直感的でないですよね。アップルらしくないというか。

iPhoneのファームウェア置き場

iPhoneアプリを開発していると、様々な実機でかつ様々なOSバージョンでテストする必要に迫られるわけですが、肝心のOSファームウェアをAppleが公開していません。

iTunes経由でファームウェアの復元を行う場合、Windows環境であればctrlを、Mac環境であればoptionを押しながら「復元」ボタンを押せば、復元対象となるファームウェア(.ipswファイル)を指定できるわけですが、ローカルに保存されるファームウェアは最新のイメージを除いて全て削除されてしまう(少なくともMac環境では)ため、毎回アップデートをかける前に1世代前のファームウェアを別のフォルダにコピーする、という作業を怠ってしまうと取り返しの付かないことになってしまいます。

そこで必然的にグレーなROM置き場が必要になってくるわけですが、私が見つけたのはここ。
iPhone以外のアップル製品のファームウェアも置いてあります。

iPod, iPhone and iPad Firmware Download
http://www.felixbruns.de/iPod/firmware/

上記サイトはこちらのサイトを辿って見つけました。(ありがとうございます)

iPhoneOSの保存先
http://pentan.info/iphone/iphone_os.html

ちなみにMacだと、iTunes経由でローカルに保存されるファームウェアは
/Users/[ユーザ名]/Library/iTunes/iPhone Software Updates
に格納されているのですが、OS X 10.7 Lionでは隠しフォルダ扱いになってしまい、Finder上に表示されません。
常に表示状態にする
にはターミナル上から「chflags nohidden ~/Library/」と叩くと見えるようになります。
非表示状態に戻すには「chflags hidden ~/Library/」です。

参考サイト:
OS X 10.7 Lion で隠しフォルダになったライブラリを常に表示させる方法
http://tukaikta.blog135.fc2.com/blog-entry-166.html

iPhone(iOS)日本語ドキュメント

iOS Developer Library
http://developer.apple.com/jp/devcenter/ios/library/japanese.html

先日「iPhone開発者向けドキュメントがiBooksで無償公開中」という記事を書いたのですが、実は私はこちらのPDF形式のドキュメントを多用しています。

iPadを持っていればiBooksという選択肢があったのかもしれませんが、PDF版ドキュメントの更新頻度が特別遅いわけでもないですし、iBooksにあってPDFに存在しないドキュメントがあるわけでもない(逆はあります)ので。

むしろPDFファイルだとDropboxに格納することでMacからもiPhoneからも閲覧できますし、加えて最近購入したAndroidタブレット(Readerが利用できる)を加えた「Mac + Android Tab + iPhone」という環境が、PDF形式をより選ばせる結果になっています。(アップルは喜ばないと思いますが)

ちなみにiOS関連のドキュメントは、iOSのバージョン更新に続く形で頻繁に更新されているので、RSS購読しておくと便利だと思います。

iOS Developer Library RSS
http://developer.apple.com/jp/rss/adcjapan.rss

iPhone開発者向けドキュメントがiBooksで無償公開中

iPhoneの開発者向けドキュメントをiPhoneで読みたいとき、これまではPDF化されたものをDropboxに放り込んでおいて、必要に応じてGoodReaderで閲覧していたのですが、iBooksでも入手可能ということで早速ダウンロードしてみました。

ちなみにiTunes Previewではこんな感じで紹介されていました。
iOS Application Programming Guide

「Published:Dec 06, 2010」となっているので、発表されたのは昨年の12月なのですね。
全然知りませんでした。

実際のダウンロードはiPhoneやiPadにインストールしたiBooksから行うことができます。
iBooksを起動して、ライブラリ(本棚)の右上にある「Store」ボタンを選択し、検索タブ画面上部の検索ウィンドウに「apple develoepr publications」と入力すればダウンロード可能なブックが一覧で表示されます。

現時点で下記6冊のブックが確認できました。もちろん全て無料です。

  • iOS Application Programming Guide
  • The Objective-C Programming Language
  • Object-Oriented Programming with Objective-C
  • iOS Technology Overview
  • iOS Human Interface Guidelines (※)
  • Cocoa Fundamentals Guide
  • 無料なので文句は言いませんけど、、、正直微妙なセレクション。(笑)
    iOS Dev Centerで「Featured Content」としてピックアップされているドキュメントをブック化してみた、という感じでしょうか。

    (※)上記ブックのうち「iOS Human Interface Guidelines」については日本国内のiTunesアカウントでは表示されません(2011/4/21日現在)。米国のiTunesアカウントでログインするとちゃんと表示されますし、ダウンロードまで正常にできます。iBooksはアカウントをまたいでブックの管理ができるようなので、私のようにどうしても読みたい!という方は米国のiTunesアカウントを取得するとよいかもしれません。

    今回は試しに「iOS Human Interface Guidelines」を読んでみました。
    PDFと比べると、やはり読みやすいですね。

    ガイドブックなので、先頭から順番に読み進めるというよりまず目次を眺めて、興味のある項目をタップ、ざっと流し読み、有用な項目にブックマーク、そしてまた目次へ・・・という作業が快適に行えます。項目をタップしてから実際に表示されるまで多少待たされますが、一度読み込みが完了すればあとはサクサク動いてくれます。

    ただ、iPhoneの画面だとはやり小ささが不便に感じてしまいますね。
    必然的にめくる頻度が多くなるので、少し前に読んだ箇所を再度確認するのに何ページもめくり返す作業を強いられることになります。一般書籍ならそれほどめくり返す事もないのかもしれませんが。
    iBookはやはりiPadで使ってこそ、真の実力が発揮されるのでしょう。

    今回実際にiBooksで開発者ドキュメントを読んでみて一番印象づけられたのは、その利便性よりもiBook+iPadの魅力かもしれません。さすがはアップルというところですね。(笑)

    ただこれをきっかけにiPadを購入に踏み切れるかといえば、正直なところ微妙です。
    ハードの魅力は確かに感じるのですが、やはりソフト(書籍)のラインナップがいまいちな気がします。今回ダウンロードしたブックにしても、全て開発者向けサイトからPDF形式で入手できるものばかりですし、PDFなら一部は日本語にローカライズされた状態で入手することもできますから。しかも私が高い頻度で使うのはガイドではなくクラスリファレンス。できればこちらをブック化して欲しかった・・・。

    あと、ブックの内容を複数の人間で共有しにくいという部分も気になります。
    有用な情報をブック内で見つけたとき、現状ではスクリーンショットを撮ってメールに添付するくらいしか思いつかないんですよね。画像だとテキスト検索ができないので、結局iBooksが持つ優位性がなくなってしまうわけで。だったらPDF化してPCに全部入れておいた方が、、、という話に戻ってしまうわけです。

    というわけで、今のところ空いた時間に英語の勉強もかねてiOSの技術を流し読みする程度にしか使えない感じのiBooks版iOS開発ドキュメント(私にとっては)ですが、しかしダウンロード数がもっと伸びれば、ひょっとしたら今後クラスリファレンスとかもブック化してくれるかもしれない、、、と勝手に期待して、結局全てダウンロードしてしまいました。
    もし私と同じ期待を抱いている方がいれば、これを機会にぜひ全冊ダウンロードしてください。(笑)

    iOS Developer Guides on iBooks

    kAMDReceiveMessageErrorでインストール失敗

    AdHocビルドした開発中のアプリを、iPhone 3Gのテスターさんに配布したときに発生したエラーです。

    こちらの記事を参考に実際にインストールしていただいたのですが、macユーザーは問題なく、Windowsユーザだけで発生しました。
    [iphone]iphoneアプリをAdhoc配信で貰った場合のインストール方法まとめ

    kAMDReceiveMessageErrorで検索すると、同じようなケースに遭遇されている方を見つけました

    kAMDReceiveMessageError

    WindowsでiPhone構成ユーティリティを利用したインストール、という環境も同じでした。
    info.plistのRequired device capabilitiesを削除すればOKだそうですが、この方も指摘されているように、削除してしまうとアップルの申請に通らなくなってしまう可能性が高いですね。テストの間だけ割り切って削除する手もありますけれど。
    iTunes経由でインストールする場合は発生しない(よく気づきましたね・・・)ので、iTunesを使うべきなのでしょうか。

    と思ったら、iPhone構成ユーティリティの最新版(3.3)がリリースされました
    iPhone 構成ユーティリティ 3.3 (Windows)
    これからちょっと試してみます。

    Required device capabilitiesはアップルへの申請時に「このアプリはこんなデバイスを利用しています」と申請するための記述なので、プログラムの動作そのものには影響ありません。また、デフォルトでは設定されていない項目なので、配布を目的としない実機テスト段階では発生しないエラーだと思います。
    言いかえれば、配布段階でいきなり発生するのでちょっとドキッとしますね(笑)

    追記(2011/04/23)

    顛末としては、エラーの出ていた端末が、プロビジョニングファイルの対象デバイスから漏れていたというオチでした。
    正確には実機とは異なるデバイスIDが登録されていました。単純な確認ミスですね。
    前向きにとらえると、該当しないデバイスにインストールしようとした場合もkAMDReceiveMessageErrorが返されると言うことが分かりましたね。(笑)