カテゴリー : 2013年 4月

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

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

duplicate symbol _OBJC_METACLASS_$_GAIDispatcher in:
    /Users/your_username/git/MyApp/Externals/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o)
    /Users/your_username/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 と共存させようとしたせいでエラーが発生してしまってたみたいです。

参考情報

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

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

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

Android-Emulator-Settings
以上です。

[参考]

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

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

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

front-end-frameworks

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

[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

[macOS] ショートカットキーでウィンドウサイズや配置を変更できるアプリ「Divvy」

macOS でショートカットキーを使ってウィンドウサイズや配置を変更できるアプリ Divvy が便利なのでご紹介します。

続きを読む

[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 ニュース

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

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

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

[iOS] ライブラリ管理ツール「CocoaPods」の使い方

MacアプリやiOSアプリ開発で使えるライブラリ管理ツール「CocoaPods」をインストールしました。

% gem install cocoapods
% pod setup
Setting up CocoaPods master repo
Setup completed (read-only access)
% pod --help
CocoaPods, the Objective-C library package manager.
 
Commands:
 
    * install    Install project dependencies
    * ipc        Inter-process communication
    * list       List pods
    * outdated   Show outdated project dependencies
    * push       Push new specifications to a spec-repo
    * repo       Manage spec-repositories
    * search     Search pods
    * setup      Setup the CocoaPods environment
    * spec       Manage pod specs
    * update     Update outdated project dependencies
 
Options:
 
    --silent     Show nothing
    --version    Show the version of CocoaPods
    --no-color   Show output without color
    --verbose    Show more debugging information
    --help       Show help banner of specified command

■ エラー対応

[!] The platform of the target `Pods` (iOS 4.3) is not compatible with

対応するiOSのバージョンを Podfile に指定すればOK

Podfile

platform :ios, '5.0'

■ .gitignore に追加する項目

Pods/
MyPorjectName.xcworkspace

■ Pods は別途、ビルドして libPods.a ファイルを作成する必要がある

ビルドしないと libPods.a ファイルが見つからないエラーが発生してしまう。

ld: library not found for -lPods

Pods をビルドして libPods.a の作成するまでは、下記のサイトがとても分かりやすく参考になった。

CocoaPodsを使ったXcodeプロジェクトの作り方(1) – shigeki.takeguchi.log

CocoaPodsを使ったXcodeプロジェクトの作り方(2) – shigeki.takeguchi.log

CocoaPodsを使ったXcodeプロジェクトの作り方(3) – shigeki.takeguchi.log

CocoaPodsを使ったXcodeプロジェクトの作り方(4) – shigeki.takeguchi.log

[参考]

CocoaPods: The Objective-C Library Manager

CocoaPods ではじめる Objective-C ライブラリ管理 (1) – Watsonのメモ

CocoaPodsでPodの利用&作成のメモ #Objective-C #CocoaPods – Qiita [キータ]

[Mac] 不要ファイルを探して削除できるアプリ「Magican」

Mac で、不要ファイルを探して削除してくれる「Magican」というアプリを使って、ディスク枯渇問題をしのぎました。

Magican – 無料のMacシステム最適化ユーティリティ