カテゴリー : 2013年 4月

[iOS] duplicate symbols : libGoogleAnalytics.a と libGoogleAnalytics_debug.a は共存できない

Xcode iOS プロジェクトをビルドしたら、下記のようなエラーが発生しました。

duplicate symbol _OBJC_METACLASS_$_GAIDispatcher in:
    /Users/bakorer/git/MyApp/Externals/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o)
    /Users/bakorer/git/MyApp/Externals/GoogleAnalytics/libGoogleAnalytics.a(GAIDispatcher.o)
ld: 212 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

■ 解決方法

[TARGETS] → [Build Phases] → [Link Binary With Libraries] にて、libGoogleAnalytics_debug.a と libGoogleAnalytics.a のどちらかの Link を除去すればOKです。

ファイル名の通り、 libGoogleAnalytics_debug.a はデバッグ時に利用するライブラリなので、本番用ライブラリ libGoogleAnalytics.a と共存させようとしたせいでエラーが発生してしまってたみたいです。

[参考]

i get a liker error · Issue #262 · rs/SDWebImage

[Android] エミュレーターでSDカードを利用する設定方法

Android エミュレーターでSDカードを利用する設定方法をメモ。

Eclipse にて、[ウインドウ] → [Android 仮想デバイス・マネージャー] → [新規] or [編集] からエミュレーターの設定画面を開き、SDカードの項目のサイズに利用するサイズを指定して[OK]をクリックします。

Android-Emulator-Settings
以上です。

[参考]

Android入門【第5回:SDカードから画像を読み込む】(ついでにGridViewで表示) | Android Techfirm Lab

[Heroku] 独自ドメインの設定方法

Heroku で、独自ドメインを設定する方法をメモ。

前提

bakorer.com と www.bakorer.com の接続先を bakorer-com.herokuapp.com に設定します。

DNSの設定

root domain のAレコードに 75.101.163.44, 75.101.145.87, 174.129.212.2 を追加します。

ホスト名: (空欄).bakorer.com
TYPE: A
VALUE: 75.101.163.44
優先: (空欄)
状態: 有効
 
ホスト名: (空欄).bakorer.com
TYPE: A
VALUE: 75.101.145.87
優先: (空欄)
状態: 有効
 
ホスト名: (空欄).bakorer.com
TYPE: A
VALUE: 174.129.212.2
優先: (空欄)
状態: 有効

サブドメイン www.bakorer.com は、CNAME で blog-hirotaka.heroku.com を設定します。

ホスト名: www.bakorer.com
TYPE: CNAME
VALUE: blog-hirotaka.heroku.com
優先: (空欄)
状態: 有効

host コマンドで確認します。

% host bakorer.com
bakorer.com has address 75.101.145.87
bakorer.com has address 174.129.212.2
bakorer.com has address 75.101.163.44
% host www.bakorer.com
www.bakorer.com is an alias for bakorer-com.herokuapp.com.
bakorer-com.herokuapp.com has address 23.23.204.240

Heroku の設定

% heroku domains:add bakorer.com
% heroku domains:add www.bakorer.com
% heroku domains
=== bakorer-com Domain Names
bakorer-com.herokuapp.com
bakorer.com
www.bakorer.com

以上です。

[参考]

Herokuで独自ドメインを割り当てる(お名前.com) #heroku #lokka – Qiita [キータ]

Herokuアプリに独自ドメインを割り当てる(ムームードメインの場合) – アインシュタインの電話番号☎

CSSフレームワークの比較一覧サイト

CSSフレームワークの比較一覧サイトをメモ。

front-end-frameworks

CSS Front-end Frameworks with comparison – By usabli.ca

[Heroku] 静的ページをアップロードする方法

Heroku に、静的ページをアップロードする方法をメモ。

ほぼ、公式ドキュメント通り。

Creating Static Sites in Ruby with Rack | Heroku Dev Center

% mkdir -p bakorer-com/public/{images,js,css}
% touch bakorer-com/{config.ru,public/index.html}
% cd bakorer-com && bundle init
Writing new Gemfile to /Users/bakorer/git/bakorer-com/Gemfile
% tree ./
./
├── Gemfile
├── config.ru
└── public
    ├── css
    ├── images
    ├── index.html
    └── js
 
4 directories, 3 files
# Gemfile:
source :rubygems
gem 'rack'
% bundle install
# config.ru:
use Rack::Static, 
  :urls => ["/images", "/js", "/css"],
  :root => "public"
 
run lambda { |env|
  [
    200, 
    {
      'Content-Type'  => 'text/html', 
      'Cache-Control' => 'public, max-age=86400' 
    },
    File.open('public/index.html', File::RDONLY)
  ]
}
% rackup
[2013-04-28 11:04:24] INFO  WEBrick 1.3.1
[2013-04-28 11:04:24] INFO  ruby 1.9.3 (2013-02-22) [x86_64-darwin12.2.1]
[2013-04-28 11:04:24] INFO  WEBrick::HTTPServer#start: pid=41780 port=9292
% heroku create bakorer-com
Creating bakorer-com... done, region is us
http://bakorer-com.herokuapp.com/ | git@heroku.com:bakorer-com.git
% git init
% git add -A
% git commit -m "Initial static site template app"
% git push heroku master
% heroku open

今回、作成したのサイトはこちら。

http://bakorer-com.herokuapp.com/

ソースコードはGitHubに公開してます。

bakorer/bakorer-com · GitHub

[iOS] 画像非同期取得 + キャッシュのライブラリ「SDWebImage」

Facebook の iPhone アプリでも使われている画像非同期取得 + キャッシュのライブラリ「SDWebImage」の使い方をメモ。

rs/SDWebImage · GitHub

SDWebImage を使っているアプリの一覧:Who Use SDWebImage

Facebook の iOS アプリで使われているというだけで安心感がありますね。

SDWebImageによる画像表示とキャッシュ – Cyber Passion for iOS

【iOS】SDWebImageでアプリ容量がどんどん増えていく件 | ht6030

SDWebImageを初めて使う際の注意点 | masaplabs

[iOS] Parse.com を使った Push 通知機能の実装方法

Parse.com を使って iOS アプリに Push 通知機能を実装したので参考になったリンクをメモ。

手順は主に下記の2つのページを参考にしました。

Quick Start | Parse

iOS Push Notifications | Parse

他にも、iOS向けのサンプルアプリやサンプルコードは下記にまとまってます。

Parse Tutorials | Parse

[Mac] ショートカットキーでウィンドウサイズや配置を変更できる「Divvy」が便利!

Mac で、ショートカットキーでウィンドウサイズや配置を変更できる「Divvy」がかなり便利です。

Divvy のダウンロード

Mac App Store でも販売していますが、公式サイトから FREE TRIAL 版をダウンロードすることができます。

Mizage – Divvy

Mac App Store – Divvy – Window Manager

Divvy のショートカットキー割当て

まず、Divvy を起動して、「Use global shortcut to display panel」から Divvy を起動するためのショートカットキーを割当てます。

僕は「Option + D」を設定しました。

Divvy-1

次に、ウィンドウ配置のショートカットキーを設定します。

上下左右と全画面表示の全5種類を設定しました。

Divvy-2

直感的に分かりやすいように、下記のように割当てました。

左:Left  → L
右:Right  → R
上:Above  → A
下:Below  → B
全体:Full → F

以上です。

[参考]

マウス不要!Macのウィンドウのサイズや場所を自由自在に操れる『Divvy』が超便利 | KonifarPod

[Eclipse] インポートするプロジェクトが見つかりません

Eclipse で既存のプロジェクトをインポートしようとしたら、「インポートするプロジェクトが見つかりません」というメッセージが表示されてインポートできませんでした。

原因は .project ファイルが存在しないせいでした。

下記のように .project ファイルを追加すれば、正常にプロジェクトをインポートすることができました。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>MyProjectName</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>

参考情報

[Android] メモリ解放やタスク終了ができる「ES Task Manager」

メモリ解放やタスク終了がカンタンにできるAndroidアプリ「ES Task Manager」が開発時にもかなり役に立ちます。

ES Task Manager – Google Play の Android アプリ

超初心者にもオススメのタスクマネージャーアプリ「ES Task Manager」【Androidアプリ】(エスマックス) – IT – livedoor ニュース

開発時にどのように役立つかというと、各画面でアプリのタスクを終了させて下記のようなことが発生しないかチェックします。

・アプリに戻った時に強制終了する

・他の画面に遷移できなくなる