Moments Studio

Mac OSX用ビデオキャプチャーアプリBear`s Hand開発のことやMac関連の勝手なはなし

全体表示

[ リスト | 詳細 ]

記事検索
検索

全31ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

ひさーしぶりに、書き込みます。何年ぶりだろうか。放置していたので、スパム業者のコメントがありましたので掃除しておきました。

NSMutableStringでトラブったのでその対策を書いておきます。
ググっても他には余り出てこないようなので。ということは、書いてもあまりニーズ無いかも。。。
まあ、気を取り直して。

その症状とは
1) Localizable.stringを書き換えているのに、それがNSLocalizedString()呼び出し結果に反映されず、昔の内容がゾンビの様によみがえっている
2) Localizable.stringに書いているのに、それがNSLocalizedString()呼び出し結果に反映されず、第1匹数の文字列が戻ってくる

2)はよくありますが、原因と対策が他とは異なっています。

まず、1)
1)が発生した原因、いきさつ
1)の症状が発生した原因は、多分、プロジェクトのフォルダごとコピーして他に作ったのだけど、
その後何かが混乱して、2つのプロジェクトがごっちゃになっていた、ことの様です。
具体的には、XCodeの左のナビゲーションエリアのFrameworksの中に、*.frameworkのファイルの他に何と前のプロジェクトのソースのフォルダがある!どうして起きたのか分からないけど、とりあえずこれを消しました。この後からおかしくなったのでこれが原因。というかなぜこうなったのかは不明。

1)の対策
どこを探しても昔のLocalizable.stringファイルが見つからない。XCode再起動、ProductのCleanやってもだめで、やったのは、下記を消すということ。消したフォルダは開発中のアプリ名を含んでいます。
(HOME)/(ライブラリ)/ApplicationSupport/iPhone Simulator/(OS名)/Applications/(呪文のフォルダのどれか)

これで、昔のLocalizable.stringファイルの記述がゾンビの様によみがえることは無くなりました。
。。。しかし、この後、上記2)の症状が発生してしまった。

で、2)の対策。(やや自信なし)
XCodeの左のナビゲーションエリアのLocalizable.string(BaseとかJapanese)を選択。
ファイルインスペクタを表示。(右にある)
Target Membershipをみると、どれにもチェックが入っていないはずなので、アプリ名と、(アプリ名)Testsの2つにチェックを入れる。

これで今のところOKです。そもそも1)の対策はもう少し適切なファイルのみ消すべきだったのかもしれないけど、どれを消せば良いか分からない。これで、この後、アップルの審査通るところまでたどり着くのかやや不安ですが、このまま進めてみます。

そもそもは、プロジェクトのフォルダのコピーって面倒が起きがちですね。この段階から要注意です。



この記事に

開く コメント(2)

突然ですが、シンガポール旅行をしました。
その際に、ポケットWiFiを現地で購入したプリペイドSIMで使用した体験、経験を書いておこうと思います。

◆なぜポケットWiFiを持っていく?
シンガポールは公衆無線LANが普及していてどこでも使える、とネットに載っていました。しかし、どこでもか?というと不安がありました。
レンタルを考えたのですが、1200円/日で、夜行便で移行としていた僕には出発日と到着日に全く使わないのに課金される2日分の費用=2400円も払うのがもったいなく感じました。
一番の理由は、「SIMロックの国から離れて思う存分SIMロックフリーを味わいたい!」だったと思います。

◆使用機材
そこで購入したのが、SoftBankのPocket WiFi C01HW。ヤフオクで5000円プラスアルファ程度の値段。他にもe-mobileの同等品D25HWがだいたい同じ値段であります。国内でも使うことを考えると、後者を選んだ方がいいかも。僕は多少日にちも迫ってきたこともあり、ともかくシンガポールでさえ使えればいい、と割りと即断して買いました。
ヒット商品のイーモバイルのD25HWそのままですが、違いは日本でのキャリアがソフトバンクしか使えないこと。僕は今回海外旅行中に使うことのみを考えていて、帰ってきたら、ヤフオクで売ってしまえばいいと思っていたので気にはなりませんでした。

◆そもそも海外で使えるの?
日経PC on line の記事 http://pc.nikkeibp.co.jp/article/trend/20100527/1025157/?P=3 によると・・・
「残念ならがD25HWもC01HWも、SIMロックがかかっており、D25HWはイー・モバイルの回線、C01HWはイー・モバイルのMVNO回線と、ソフトバンクモバイル回線のSIMカードしか認識しない。しかしこのSIMロックにはからくりがある。海外の携帯電話会社が提供するSIMカードは認識するのだ。つまり、Pocket WiFiは“国内SIMロック、海外SIMフリー”という仕様なのである。」
という訳で使える様だ。また僕がヤフオクで購入した相手の方も海外での使用経験がいろいろあり安心出来た。

◆参考にした記事
以下の山根康宏氏の記事がとても参考になりました。設定内容までこのまま使えました。
 シンガポールでプリペイドのモバイルデータ通信を活用する

ざっくり言うと、キャリアがSingtel では18SD(シンガポールドル)(約1170円)で3日間使える。データ量制限なし。一日たったの390円。
なんかのCMみたいですが、コーヒー一杯分で1日WiFiが使い放題。延長も10SDで4日。

◆実際にやってみて
しかし何事もそうですが、実際やってみると若干上記の記事と異なることがありました。記事を書いてから1年経ってますから変化はあるでしょう。
1)SIMカードは空港では買えなかった
これは結構参りました。到着フロアにあるコンビニ、両替所両方ともだめ。両替所はSingtelのカード扱っていたのですが、データ通信だけのSIMじゃなく通話とセットになったやつ("hi"という名前)だけ販売。両替所のおばちゃんで、これでデータ通信できるよ、と言うが、幾つか忘れたけど使えるデータ量のあまりの少なさに、じっくり考えたてから、"SIngtelショップに行くよ"と答えました。これが正解。

今回はSIngtelにこだわったためで、他のキャリアなら買えたかもしれません。そもそも両替所ではついでに扱ってる感じで、そこのおばちゃんはそんなにSIMカードのこと詳しくない。今にして思うと地下に大きなスーパーがあるからあすこにはあったかも。

結局購入したのは宿泊したマリーナベイサンズのショッピングモールにあるSingtelショップ。近いところにあって救われました。SingtelショップはSingtelのサイトから探せます。
プリペイドカードはいろいろ種類があるのだけど、割とすんなりそのものズバリを店員が出してきました。値段が18SDと言ってきたのでまあ間違いないだろうとは思いましたが、一応、上記記事にある、カードの写真を店員に見せて同じものか?確認しました。僕は英語が得意な訳ではない上、店員のシンガポールなまりの早口でめんどくさそうにぼそぼっと喋る内容は聞き取りづらかったからです。まあでもその後のやり取りもてきぱきと安心感がありました。

2)延長(Top-Upと呼ぶ)
SIMカード購入時にTop-upしようとしたら、店のあんちゃんにWeb!と言われて、あそっかと思ったものの、上記記事に「日本のカードが利用できない場合はSingtelの店舗で直接入金処理をする必要がある。」とあります。やっぱ現金でやっとけばよかったと思ったのは後の祭り。Top-upやろうとしたのは、別のホテルに移動した後で、SIngtelショップに行くのも大変なので、いちかばちかWebでやろうとした。しかし、電話番号を入力する必要があり、??となり、これが分からずあきらめることに。電話番号は、購入したときのSIMカードを抜き取ったガワ?かもらった紙に書いてあったかもしれない。しかしそれらは紛失してしまった。で、延長はあきらめました。
3)利用期間のカウント方法
細かいことですが、上記記事(前編)には「利用開始が当日の午後の場合は、当日分は1日としてカウントされないようだ。」とありますが、どうも利用開始から3x24Hでカウントされているようです。買った時刻あたりに使えなくなりました。Top-up出来なかったものの、実際には、4日滞在した最後の日の午後まで3日x24H使用出来て、使えないのは半日ほどであまり困りはしませんでした。


◆使用感
事前に日本でC01HWへのプロファイル設定とデフォルトのプロファイル選択までやって、現地でSIMカードさせばすぐ使えるようにしておきました。Singtelショップでカード購入後すぐに試したところ、すんなりOK!無事使えたときの嬉しかったこと!あとはシンガポール国内どこにいても、タクシーに乗っていても普通に使えました。
ただし、例外があり、SMAPのCMで一躍有名になったマリーナベイサンズに泊まったのですが、25Fの部屋では、超遅くて使えない。一応繋がるけど、何かやると1ページ読み込みに1分待つ感じ。ここのエレベータは超速いので1Fに降りてってやってきた方が早い。
もちろん、ホテルにも有線LAN, 無線LANはあります。しかし12SD/日、日本円では780円ほどだからポケットWiFi持ってなかったら使ったと思いますが、ポケットWiFi持ってる身としては意地でも使いたくありませんでした。

◆現地の公衆無線LAN Wireless@SG
空港のインフォメーションカウンターに行き、パスポートを見せると、すぐにWireless@SGというサービスのIDとパスワードを紙に書いてもらえる。これは時間制限ありだそうだが、詳細は不明。確かに、到着日のアカウントでは最後の日は使えなくて再度発行してもらいました。問題は空港以外でどこで使えるのか?(シンガポール動物園では確か見えてた、他にもたまに見かけた)空港以外でどこでアカウント作ってもらえるのか?(SMSで受け取るというやり方を取るのだろうけど、SMS使える携帯が無いとだめ)という訳で、空港以外では気軽に使えないと思います。
使い方自体は、簡単で、iPhoneに出てくるログイン画面にID, Password入れればすぐ使えます。時々不安定になることはあるものの問題なく使えました。
ただし、僕が使ったのは午前5時頃とか、午後9時以降とか割と空港が空いている時間帯なので、込んでいる時間帯はまた違うかもしれません。

◆セントーサ島シャングリラでのLAN
こっちにも泊まったのですが、LAN(有線だったような)はあり無料だったと思いますが、使用するには登録が必要でいろいろ入れさせられるのが面倒で使いませんでした。

◆その他電源のこと
シンガポールの電源はイギリス式?で3端子のごっついやつ。そのせいか、机の上にACの差し込みは出て無くて、コンセントは机の下(無い場合も)、壁、洗面所くらいにしかありません。やややりづらいですが、なんとかなりました。一番不便なのはPCで、コンセントがいい位置に無い場合、充電しながら使うしかないです。

◆海外でプリペイドSIMを使った体験の同様のブログ、記事
マイコミジャーナル 山根康宏氏の記事(いろいろな国での体験が)
IT media 「海外プリペイドSIM導入マニュアル」
アメリカ(サンフランシスコ)
アメリカ(全体)
イギリス
オーストリア(ウィーン)
 ざっとググった結果なので他にもあるとは思います。

この記事に

開く コメント(0)

(本日発送したメルマガです)

【Bear's Hand】Bear's Hand新バージョンリリース(v0.8.0.0)のご案内

◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆

Moments Studioからのお知らせ

◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆

Bear's Handユーザーの皆様

Bear's Hand 0.8.0.0をリリースしました。
修正点は以下の通りです:
1)前回のメルマガに記載したFile name: fixed nameを選択した場合に、ディレ
クトリや最悪HDD全体を消してしまう症状の解消。
2)これまでOSのバージョンアップに従い使えなくなっていたスリープからの解
除機能を使える様にした。
3)細かいバグ修正等。

ただし、当方では、問題なく起動、動作確認しているのですが、起動すると、
次のようなメッセージが表示されると言う方からメールを頂きました。
「問題が発生したためBearsHandを開くことができません。
開発者に問い合わせて、BearsHandがこのバージョンのMac OS Xで動作する
ことを確認して下さい。…」
このため、メルマガの送信を控えていたのですが、発生状況が不明な為、メルマガ
の読者の方に試して頂きたいと思い、メルマガをお送りさせて頂く事にしました。
ダウンロードして頂き、「動いた」、「動かない等」、動作状況を下記ブログある
いはメールでお知らせ頂けるとありがたいです。


また、少し前から、MacBook Pro等で、内蔵のiSightカメラから取り込むと、モニ
ターの画像表示の右側が緑や灰、赤色でちらちら覆い隠される、という症状の発生が
起きています。録画画像には問題ない様です。
原因とおぼしき点は分かっているので、すぐには取りかかれませんが、対策をしよう
と思っています。

ではよろしくお願いいたします。

ダウンロードはこちらから→
http://moments-studio.com/BearsHand/m2/


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■発行 Moments Studio
■Mail: support@moments-studio.com
■Web:  http://moments-studio.com/
■blog:  http://blogs.yahoo.co.jp/moments_bhd/
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 このメールマガジンは『まぐまぐ!』 http://www.mag2.com/ を利用して
 発行しています。配信中止はこちら http://www.mag2.com/m/0000134008.htm
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 Copyright 2011, Moments Studio. All rights reserved.

この記事に

開く コメント(0)

iPhoneアプリでtwitter関連のアプリを組む場合のパーサーとして、ポピュラーらしい?YAJLをMacで使う時のノウハウ。
コンパイルリンクしてフレームワークまでは作れたのだけどどうやってそれを自分のアプリの中に同梱させるの?という時の説明。元のgithubのページには手順が書いてあるんだけど、英語だしちと説明が簡略でXcodeの深い所慣れてないので迷ったりググったりして探って分かったことを書きました。


参考HP github  "gabriel / yajl-objc"
     https://github.com/gabriel/yajl-objc (英語)

<HPの内容と自分の実行結果>

Install (Mac OS X)

There are two options. You can install it globally in /Library/Frameworks or with a little extra effort embed it with your project.

Installing in /Library/Frameworks

Copy YAJL.framework to /Library/Frameworks/
In the target Info window, General tab:
Add a linked library, under Mac OS X 10.5 SDK section, select YAJL.framework
Installing in your project
Copy YAJL.framework to your project directory (maybe in MyProject/Frameworks/.)

  →(1)すでにインストールしてあった/Library/Frameworks/YAJL.framework を
開発中のxcodeprojファイルのある所の1つ上のフォルダにFrameworksというフォルダを作り
その下にYAJL.frameworkをコピー(下記(3)のパスを適宜直せば実際はどこでも良いであろう)

Add the YAJL.framekwork files (from MyProject/Frameworks/) to your target. It should be visible as a Linked Framework in the target.

  →(2)(1)のYAJL.frameworkを"グループとファイル" ペイン内に下記の様にドラッグ&ドロップで配置
       (アプリ名)
         FrameWorks
           Linked Frameworks
              YAJL.framework

Under Build Settings, add @loader_path/../Frameworks to Runpath Search Paths

→(3)ターゲット"(ターゲット名=自分のアプリ名)"の情報 > ビルドタブ で「実行パス」で検索
「実行パスの検索パス」に @loader_path/../Frameworks を入れる

Add New Build Phase | New Copy Files Build Phase.

→(4)"グループとファイル" ペイン内ターゲット下の(ターゲット名)で右クリック>追加
>新規ビルドフェーズ>新規コピーファイル

Change the Destination to Frameworks.

→(5)出て来た""(ターゲット名)"のファイルをコピーするフェーズ”の情報パネル
というタイトルのパネル内で
ディスティネーション: フレームワーク 
を選択。
(重要)ここでパスは空白のまま。インストール時のみコピーはチェックしない。
これで、"グループとファイル" ペイン内ターゲット下のBirdsComebacksの下が次の様に
バンドルリソースをコピー
ソースをコンパイル
バイナリをライブラリにリンク
ファイルをコピー ←追加された

Drag YAJL.framework into the the build phase
→ (6)"グループとファイル" ペイン内の
Frameworks > Linked Frameworks下のYAJL.frameworkを
(5)の「ファイルをコピー」の上(配下に出来る)にドラッグ&ドロップ

Make sure the copy phase appears before any Run Script phases

→ 多分、Run Script(「スクリプトを実行」フェーズ)をターゲットの
下に作っている場合に気をつけるのだと思う。「スクリプトを実行」フェーズ
無い場合、意識しない。

(確認)
ビルドしてみる。
できたアプリケーションで右クリック>パッケージの内容を表示。
次のフォルダが出来ている事を確認。

Contents/Frameworks/YAJL.framework/以下もろもろのファイル...

これが出来ていないと、他のマックに実行ファイルをコピーして
アプリ起動時に、ライブラリが無いとかのエラーが表示される。

これを使ったアプリを現在開発中で、詰めの当たりにようやくたどり着きました。
12月のどっかに公開したいな。

しかしたまに自分のブログ見に来るとスパムコメントだらけで消すのが面倒。

この記事に

開く コメント(0)

AppleのPVRTextureloaderのサンプルにはtexturetoolを使ったPNG->PVRの変換をビルドで一緒に自動的にやってくれるスクリプトが組んであります。これはこれで便利ですね。
そこでもう一歩踏み込んで、この変換は、必要な時のみ行う様に改良てみました。
必要なときとは
1)変換元のファイルが編集等で更新された時
2)変換して出来るPVRファイルがない時


これはUnixのMakeでは当たり前の機能ですが、XCodeに組み込みのスクリプト実行では残念ながらMakeは使えないようです。(あまり深く調べてませんが)
そこで、shの中で同様の事をやる方法を調べてみました。ものすごーく久しぶりにunixのbshを使いました。
変換自体は1ファイル1秒以下で終わりますが、ファイルが複数ある時、無駄な時間を省くのは気分がいいかもしれません。

で、結果こうすればいいと分かりました。
例えばプロジェクトのルートの下にこのようにファイルを作るとすると;
返還元のファイル:(プロジェクトのルート)/Image/titile.png
できたPVRファイル:(プロジェクトのルート)/titile.pvr

"クリプトを実行"の所には次を入れます:
TEXTURE_TOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/texturetool
SRC_FILE=$IMAGE_FOLDER/Images/titile.png
DEST_FILE=$SRCROOT/image.pvr

if test ! "$DEST_FILE" -nt "$SRC_FILE" ; then
    $TEXTURE_TOOL -m -e PVRTC --bits-per-pixel-4 -o "$DEST_FILE" -f PVR "$SRC_FILE"
fi


注意点;
ifとかコマンド実行行では、$DIST_FILEなど、$で始まる変数は""でくくっておく事。
XCodeのログからはエラーになったとき、こういう変数がどう実行されたか、例えばechoで変数を表示しようとしても出来ないのでデバッグしづらいです。
デバッグのため、同じようなコードを.shファイルに書いて実験していたのですが、変数は""でくくらなくても動いていました。なぜ、XCodeに入れると""が必要か?不思議ですが、bshをもはや突っ込んで使う事は無いので、今回は結果オーライとします。

補足
PVRTextureloaderのプロジェクトでは、スクリプトは"ターゲット>PVRTextureloader>
Encode Image"をダブルクリックして出て来ます。
自分のプロジェクトでは"スクリプトを実行"と表示されてます。

その他、スクリプトに関する説明はここを参考に:
テンシーシー http://ameblo.jp/xcc/entry-10298104084.html

この記事に

開く コメント(0)

全31ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]


.


みんなの更新記事