macOS Sierra環境でAdMob導入(Objective-C版)

iAd使えなくなったんだよなーと機能だけオフにして放置していましたが、年末休みにちょっとトライしてみました。

基本はこちらを参考にさせていただきましたが、いくつかつまづいたのでメモがてら。

iOS AdMob 実装 方法 - Amarronの日記

AdMobのアカウント作って、アプリを登録したとこまでは問題なかったのですが、CocoaPodsの導入でエラー。

$ pod init
$ vi Podfile

でファイルを修正。

# Uncomment the next line to define a global platform for your project
source 'https://github.com/CocoaPods/Specs.git'
# platform :ios, '9.0'

target 'アプリの名前' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
# Pods for アプリの名前
pod 'Firebase/Core'
pod 'Firebase/AdMob'
end


で、インストールと。

$ pod install
Unknown option: -C
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]
Unknown option: -C
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]
Setting up CocoaPods master repo
Unknown option: -C
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]
[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

あら、失敗。

で色々探していたら行き着いたのがこちら。

pod install で Unable to add a source と言われました。 - Qiita

こちらにあったように手動で追加しようとしたのですが。

cd ~/.cocoapods/repos
git clone https://github.com/CocoaPods/Specs.git master

今度はこんなエラー。

$ git clone https://github.com/CocoaPods/Specs.git master
Initialized empty Git repository in /Users/yayoi/.cocoapods/repos/master/.git/
fatal: https://github.com/CocoaPods/Specs.git/info/refs download error - The requested URL returned error: 403 Forbidden

さらにさまよいます。その前に試しにブラウザで上記URLにアクセスしてみたら「Please upgrade your git client.」とのこと。バージョンを見てみたら「1.6.0」でした。なので、こちらを参考にアップデート。ダウンロード&インストールですが。

OSX で Git をバージョンアップする - Qiita

この後で2.10.1になっていることを確認。

$ git --version
git version 2.10.1

無事にリポジトリの追加pod installも成功しました。

その後のコーディングですが、ここでも一個つまづきました。そもそもどうimportするんだろう…。こちらを見ながら実装していたのですが。

スタートガイド  |  AdMob by Google  |  Firebase

@import GoogleMobileAds;

って書けばいいと言われてもこんな文法あったっけと思いつつ書くとエラー。で探してみたらこちらに。

アプリ開発メモ: Xcode6 AdMob SDK v7.3.1 実装で困った。Use of @import when modules are disabled

要は、@importを使えるようにしなさい。ということ。単純なエラーで良かったです。

Enable Modules(C and C-Objective-C) ------> NO を YES にしなさい。


これでようやく動きました。あ、テスト用の広告IDの時は問題ないようですが、実際のアプリと関連づけられている広告IDを使う際にはAdMobにアプリ登録後にダウンロードした「GoogleService-Info.plist」をプロジェクトに追加するよう有りとのことです。

スポンサーサイト


実験@2016/12/29 11:54   | 0 comments | 0 trackbacks |

iStat NanoやiStat Proでプロセスが表示されなくなった

結構重宝しているWidgetだったので困っていました。

で、ググってみたらドンピシャ。

Fix iStat Nano or iStat Pro Processes in Mountain Lion | Refined Robot

事前の準備として、Mountain Lionではホームディレクトリ配下のライブラリが非表示になっているので以下の手順で表示させる。

  1. ターミナルを起動
  2. 以下のコマンドを実行

    chflags nohidden ~/Library


で、表示されたライブラリにアクセス。
  1. Widgets内にある「iStat Pro.wdgt(iStat NanoならiStat Nano.wdgt)」を右クリック、して「パッケージの内容を表示」を選択。
  2. iStat Proの場合、Wide.jsかTall.jsをテキストエディットで開く。これは画面表示モードによりけり。
  3. ファイル内を「PID|」で検索。
  4. ヒットすると二箇所あるので「PID|$1」を「PID| $1」に書き換える。$の前に半角スペースを挿入。
    保存して閉じる。
  5. Widgetを追加し直す。

全体手順のスクリーンショットはこちら。


実験@2013/08/10 15:18   | 0 comments | 0 trackbacks |

iOSの「引っ張って更新」するクラスを導入してみようとした

Objective-Cネタです。

こちらでも紹介されている「EGOTableViewPullRefresh」なのですが、ARCに対応していないので新規にプロジェクトに追加したりするとエラー吐きまくり。releaseを削除しまくるだけでもダメみたい。

「引っ張って更新」するクラス

リンク先ではARC対応された物が公開されていましたが、自分はそれに気付かずじまい。で、自分はこちらを参考にさせていただいて、上記のをARC非対応にしてしまいました。

How to include non ARC file in your ARC project | The Agile Warrior

要はGithubから追加したソースに対して、Build phaseの画面で「-fno-objc-arc」オプションを追加。これで動作しました。

xcode


実験@2013/06/02 21:49   | 0 comments | 0 trackbacks |

もうxAuthの申請なんてTwitterにする必要無かったんだ!とseach APIでのハマりどころ。

まー、iOSのTwitter frameworkの便利さと言ったら。

先日こう言ったことを言ってましたが、数日したらtwitterから「他のやり方の方がいいよ」ってメールが来て。

考えてみたらiOS5以降ならframework使ったら良いじゃんってことで。この辺りを参考にさせていただきました。

Cocoaの日々: TWTweetComposeViewController でツィート
Beginning Twitter in iOS 5 Tutorial

で、写真付きでつぶやくのは余裕だったのですが、さて、そのつぶやきをsearch APIで取得して一覧表示使用としたらちょっとハマったのでメモ。

これまではtwitpicに出力していたから短縮URLから画像自体のURLを取り出すことができていたのですが、frameworkだとtwitterのURL変換ルールに則るので、t.coからどうやって画像のURLを取り出したらいいのだ?!と小一時間悩みました。

で、Twitter Developersサイトに以下のような記述が。

GET search | Twitter Developers

include_entities(optional)

When set to either true, t or 1, each tweet will include a node called "entities,". This node offers a variety of metadata about the tweet in a discrete structure, including: urls, media and hashtags. Note that user mentions are currently not supported for search and there will be no "user_mentions" key in the entities map. See Tweet Entities for more detail on entities. Please note that entities are only available for JSON responses in the Search API.

ハマったのが太字のところ。これまでxmlで取得していたのでそりゃいくらinclude_entitiesを指定してもentity情報返ってこないわけで。JSONで戻すようにしたら取れました。その分パースの部分もJSONフレームワーク使ったりして作り直しが発生しましたが。

JSON Frameworkを使ってjsonをiPhone(iOS)でパースする。 - ひろぽんのプログラミングメモ

でも、これでTwitter周りの実装がスッキリしたなーと。


実験@2012/12/02 23:03   | 0 comments | 0 trackbacks |

TwitterのxAuth申請方法が変わってた

前はこちらの記事にあるようにメールでの申請だったのですが。

意外に簡単なTwitterのxAuth認証の申請方法 - 言葉の海のプログラマー

申請用のフォームができていました。

Twitterヘルプセンター

こちらにアプリの情報を入力してサブミットするだけということで。


実験@2012/11/27 10:55   | 0 comments | 0 trackbacks |

Wifi接続しているiMacを有線LANのハブにしたかった

なんでわざわざと言う話はありますけど、無線LANのインタフェースを持っていない機器をいじっていたので。しかも、自宅のルータはPPPoEの認証が掛かっていて、その機器じゃそんなもの越えられなかったのでした。

この辺を見つつ試行錯誤。

ネットワークをMacとiPhoneで共有 [Mac OSの使い方] All About

iMacはWi-Fi経由でAirMac→インターネットってなっているから、共有するのは「Wi-Fi」ってことね。で、つなげる機器はEthernetポート経由で接続したいから相手のコンピュータが使用するポートは「Ethernet」に。ここで一つ勘違いしていたのは「ケーブルはクロスである必要がない」ってことでした。

設定画面はこんな感じで普通のLANケーブルでiMac背面のEthernetポートと機器を接続したらうまくいきました。

networksetting


実験@2012/01/14 17:19   | 0 comments | 0 trackbacks |

スライム肉まんがあらわれた!

ここんところ話題となっているスライム肉まんを買ってみた訳ですが。

CIMG0216

以前に作ったこちらのアプリで試してみたいと思っていたのでした。

iTunes App Store で見つかる iPhone、iPod touch (第4世代)、iPad 2 Wi-Fi、iPad 2 Wi-Fi + 3G 対応 AR.PG

こんな感じに。
IMG_2322

こんな感じで頂いた訳ですが。
IMG_2323


実験@2011/12/03 15:25   | 0 comments | 0 trackbacks |

MacでKinect

ひょんなことから手を付けてみた。

準備したのはこちら。あ、Macはすでにあります。

Xbox 360 Kinect センサーXbox 360 Kinect センサー
(2010/11/20)
Xbox 360

商品詳細を見る


教科書その1。

KINECTセンサープログラミングKINECTセンサープログラミング
(2011/05)
中村 薫

商品詳細を見る


教科書その2。

キネクト ハッカーズマニュアルキネクト ハッカーズマニュアル
(2011/08/26)
西林 孝 + 小野 憲史 共著

商品詳細を見る


iMacで一通り動いた後で、MacBook Airでも動かそうとしたらいろいろ手順が必要なんだなと再認識。

まず、MacPortsが必要。こちらの右上のDownloadから落としてインストール。あ、XCodeとX11も別途必要とのこと。

The MacPorts Project -- Home

その後で、以下をターミナルで実行して追加。

sudo port install git-core
sudo port install libtool
sudo port install libusb-devel +universal
sudo port install cmake

で、一冊目の教科書に書いてあった「Homebrew」での「libfreenect」のインストール、iMac(Lion)では上手く行ったのですよ。

ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"
cd /usr/local/Library/Formula/
curl --insecure -O "https://raw.github.com/OpenKinect/libfreenect/master/platform/osx/homebrew/libfreenect.rb"
curl --insecure -O https://raw.github.com/OpenKinect/libfreenect/master/platform/osx/homebrew/libusb-freenect.rb
brew install libfreenect

んが、Macbook Air(Snow Leopard)だと、どうしてもインストールでこける。なので、二冊目で紹介されていたソースコードからのインストールに方針変更。

git clone https://github.com/OpenKinect/libfreenect.git
cd libfreenect/
mkdir build
cd build/
cmake ..
make
sudo make install

で、この後でライブラリOpenNIとドライバSensorKinect、ミドルウェアのNITEをインストールします。この辺りのファイルはこちらからダウンロードしました。OpenNIのページからNITEなどもダウンロードできるのですけど、なぜかライセンスキーが受け付けられないのでした。

フロントページ - Kinect-wiki

OpenNI、SensorKinect、NITEのインストール方法は本やネットに載っているので行けたので割愛します。基本的に解凍、./install.shの流れ。

そして、ビルド環境の構築。これも結構ハマりました。この時点で同梱されているサンプルは動いていたので高をくくってたのですが。XCodeでビルドする際にOpenCVが必要なのに気づくのに時間が掛かりました…。

一冊目の教科書の最後の「補遺」に手順が記載されています。こちらからダウンロードして解凍して、cmake、make、sudo make installでオッケー。

Link|Download | OpenCV.jp

その後で、XCodeの設定です。OpenNI、NITEの設定に加えて、OpenCVの設定が必要となります。

まず、ビルドするプロジェクトにライブラリを追加します。

xcode1

追加するライブラリなのですが、二冊目の教科書では/opt/local/lib以下にあるものをと書いてあったのですが、なぜか自分の環境ではそこに無い…。なので、OpenCVをビルドした場所のlib以下にあったもの(バージョン番号あり)をリネームして追加しました。動いているけどこれでいいのか?ちなみに上の写真の「.dylib」がそれです。

ビルドの設定はこちら。日本語で言うところの「他のリンカーフラグ」で二つのフラグを追加します。一冊目の教科書であったOpenCV系のフラグは設定しておくとなぜかリンクできませんでした。

xcode2

最後にヘッダ検索パス。三つ追加します。ライブラリ検索パスはライブラリ追加の際に自動補完された様子。

xcode3

これでビルドが通るようになりました。Kinectは公式SDKが出たりして動きが速いので、この記事もすぐに時代遅れになりそうですな。


実験@2011/11/13 15:30   | 0 comments | 0 trackbacks |

php.iniをいじっていたら携帯サイトでセッションが保持されなくなった

久々にPHPではまった…。

レンタルサーバのphp.iniをあーだこーだしていたら、携帯サイトでのセッション引き回しができなくなっていた訳で。いろいろ設定確認してもなんともならず。グーグル先生に訪ねてみたら、こちらのつぶやきに遭遇。

Twitter / @w.A.D.a: PHP 5.3.2の session.use_onl ...

PHP 5.3.2の session.use_only_cookies のデフォルトは1のようだ。明示的に0にしないと、session.use_trans_sid=1 が効かない。クッキーの効かない携帯は取扱が難しい。

ソースコード見てみたら、ini_setで上記設定がしていなかったことに気づいて、明示的に指定したら復活したのでした。むむー、これまではたまたま動いていたってことなのね。。


実験@2011/05/28 11:49   | 0 comments | 0 trackbacks |

ChromeOSをMacで動かしてみた

思った以上に簡単に動いた。

chromeOS

こちらから。
Run Google Chrome OS within Mac OS X

こちらにたどり着いて、あとは書いてある通りに。ただ、途中の「Virtual Media Manager」のくだりには遭遇せずに、Chrome OSのマシンイメージを選択したらサクサクと。

Want To Try Out Google Chrome OS For Yourself? Here's How.

使ってみたのですが、普段の利用であれば全然問題にならない機能セットだなーと。「何でもできる」は「何にもできない」ってことをしみじみ感じた次第。しばらく遊んでみようっと。

ただ、米国キーボードなのと音をどう出すかは調査しないとなー。


実験@2011/02/14 19:56   | 0 comments | 0 trackbacks |

«  | HOME |  »

いろいろ作ったり

TweetsWind

プロフィール

icot

Author:icot
総合電気メーカで働く会社員。お酒、ジョギング、音楽、本、料理をこよなく愛してます。ここでは、日々感じた事を書き連ねるとともに、いろいろ実験してみたりしてます。インド赴任を終えて日本で働いています。でも作るのはやめません。
icotfeels[at]gmail.com

これまでに感じたこと