cocoapodsで入れたgoogle analyticsがTestプロジェクトでコンパイルエラーになる

cocoapodsでgoogle analyticsを入れたら
Testプロジェクトでコンパイルエラーになるようになってしまった。

それの解決メモ。
エラーの内容は下記みたいなやつ。
ld: framework not found GGLAnalytics for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


解決方法は、PodfileのTestターゲットに必要なものを追記する感じ。
target 'GASampleProject' do
use_frameworks!

# Pods for GASampleProject
pod 'Google/Analytics'

target 'GASampleProjectTests' do
inherit! :search_paths
# Pods for testing
end
end
これを
target 'GASampleProject' do
use_frameworks!

# Pods for GASampleProject
pod 'Google/Analytics'

target 'GASampleProjectTests' do
inherit! :search_paths
# Pods for testing
pod 'Google/Analytics'
end
end
に変更するとテストが出来るようになった。


参考サイト
GoogleAnalyticsをcocoapods使って複数ターゲットがあるプロジェクトに入れたらビルドできないっ!
スポンサーサイト

swiftで二次元配列のindexOf

swiftで二次元配列のindexOfの書き方をメモ。
let areas = [
["code": "22", "name": "東京"],
["code": "23", "name": "神奈川"],
["code": "21", "name": "千葉"],
["code": "20", "name": "埼玉"],
]
こんな配列がある時に、code=21のindexを取得したときの書き方。
let index = areas.indexOf({$0["code"] == "21"})
これで indexの結果は"2"が返ってくる。

参考サイト
[Swift]指定した要素を配列から探してそのインデックスを取得
【Swift】クロージャの使い方。名前の無い関数を作る。

ConoHaのVPSサーバー立ち上げる時にやる事をメモ - DBサーバー

転送料無料、初期費用無料、オールSSD…こんなVPS、日本にたった一つ

       月額900円からの「ConoHa VPS」


ConoHaのVPSサーバー(DBサーバー)立ち上げて、VPSサーバーからプライベートネットワークでデータベースに接続するまでにやる事をメモ。

事前準備

  1. VPSサーバーにSSHでログイン出来る。設定方法はこちら
  2. そのVPSのユーザーでsudoが出来る。
  3. ConoHaのコンソールでアプリケーションサーバー - DBを作成して、データベース・データベースユーザーを作成しておく。
    作成方法はConoHaのチュートリアル「データベースサーバーを使う」を参照


  4. DBサーバー接続用ネットワーク設定

    • ConoHaのチュートリアル「DBサーバー接続用ネットワークを作成する」を参照して、設定を進める。
    • 「[5] 接続状況が「接続する」に変わり、以下のようにIPアドレスが表示されます。このIPアドレスをVPSのネットワークインターフェイスに設定します。」の部分のIPアドレスをVPSのネットワークインターフェイスとして覚えておく。
    • VPSの詳細画面の「ネットワーク情報」の「表示NIC」から「shared」となっているNICを選択して、下に表示される情報を覚えておく。
    • ConoHaのチュートリアルはCent0S6.6なので、ここからがCentOS7.2の設定。「VPSの設定を行う」を行うを見ながら設定していく

    ここから、「VPSの設定を行う」の番号に対応させていく。
    • VPSのサーバーにログインをする。
    • ネットワークインターフェイス(ここではeth1)の設定を行います。
      # cd /etc/sysconfig/network-scripts/
      # sudo vi ifcfg-eth1
      ifcfg-eth1の内容
      DEVICE=eth1
      TYPE=Ethernet
      ONBOOT=yes
      NM_CONTROLLED=yes
      BOOTPROTO=static
      IPADDR=172.21.***.***
      NETMASK=255.255.254.0
      IPADDRは、上記で覚えておいた「VPSのネットワークインターフェイス」のIPアドレスを設定する。
    • 次に、このネットワーク用の静的ルーティングを設定します。
      # sudo vi route-eth1
      で東京リージョンの場合には
      172.21.74.0/23 via 172.21.138.1 dev eth1
      と設定する。「172.21.138.1」は、VPSの詳細画面の「ネットワーク情報」に表示されていたsharedの「ゲートウェイ」を設定する。
    • 設定を反映するため、ネットワークサービスをリスタート
      service network restart
    • ネットワークが正しく設定されていることを確認するため、DBサーバーにpingを送信
      ping -c 3 private.***.tyo1.database-hosting.conoha.io
      データベースのホスト名は、データベースサーバーの詳細画面の「データベースリスト」の作成したデータベースの「接続先ホスト名」の「プライベートネットワーク」を設定する。


    pingが通ったら最後に、VPSからmysqlに接続してみる。
    mysql -u [接続ユーザー名] -h private.***.tyo1.database-hosting.conoha.io -p

    データベースユーザーの接続許可IPは、"%"にせずに、IPを指定する場合はprivate.***.tyo1.database-hosting.conoha.ioの場合は、VPSの詳細画面の「ネットワーク情報」に表示されていたsharedの「IPアドレス」を設定する。

vagrantに入れたプラグインをメモ

vagrantに入れたプラグインをメモ

vagrant-cachier


yumとかで一度ダウンロードしたパッケージをキャッシュしてくれるので、provisionの速度が2回目から上がる。
vagrant-cachier

sahara


vagrantの状態を管理するためのプラグイン。
インストールした状態をコミットしておいて、そこにロールバックしたり出来る。
sahara

serverspecで、itamaeのNode Attributesを使うようにする。

itamaeで構築した環境のテストを
serverspecで書く時に、itamaeのNode Attributesを使うようにするためのメモ。

jsonファイルがこんな感じにしてたとき。
development.json
{
"env": "development"
}


set_propertyを使う方法(itamaeじゃなくても使える)



spec_helper.rbに下記のように変更する。
変更前
require 'serverspec'

set :backend, :exec
変更後
require 'serverspec'
require 'json'

set :backend, :exec

attr_file = "#{Dir.pwd}/nodes/#{ENV["SPEC_ENV"]}.json"
exit(0) unless File.exist?(attr_file)
RSpec.configure do |c|
set_property JSON.parse(File.read(attr_file))
end

実際のテストで使う時。
sample_spec.rb
if property["env"]=="development" then
describe package("mariadb") do
it { should be_installed }
end
end


テストを実行する時
bundle exec rake spec SPEC_ENV=development



Itamae::Nodeを使う方法(itamaeならこっちのが良い)



spec_helper.rbに下記のように変更する。変更後
require 'serverspec'
require 'json'
require "itamae/node"

set :backend, :exec

def node
return @node if @node
hash = YAML.load_file("#{Dir.pwd}/nodes/#{ENV["SPEC_ENV"]}.json")
@node = Itamae::Node.new(hash, Specinfra.backend)
end

実際のテストで使う時。
sample_spec.rb
if node[:env]=="development" then
describe package("mariadb") do
it { should be_installed }
end
end


テストを実行する時
bundle exec rake spec SPEC_ENV=development



参考サイト
Serverspecでchefのjsonを読み込む
Serverspecでサーバ情報をファイルに保存してテストする方法
itamae実践Tips

ConoHaのVPSサーバー立ち上げる時にやる事をメモ - webサーバー1

転送料無料、初期費用無料、オールSSD…こんなVPS、日本にたった一つ

       月額900円からの「ConoHa VPS」


ConoHaのVPSサーバー立ち上げる時にやる事をメモ。


事前準備


ConoHaでVPSサーバーを新規に作成して、rootでログインが出来ること。
作り方はチュートリアルのVPSを追加するを参照
今回は、CentOS7.2で作成する場合のメモ。

root以外のユーザーを作成してSSHログイン出来るようにするまで


  1. yum をアップデート
    $ yum update
  2. root以外の作業用ユーザーを作成してパスワードとsudo出来るように設定。
    $ adduser username
    $ passwd username
    $ gpasswd -a username wheel
    ※ ConoHaは、visudoの%wheel ALL=(ALL) ALLがはじめからコメントアウトされてたので、これだけでsudo出来るみたい。
  3. 公開鍵と秘密鍵を生成する。
    作成方法はConoHaのマニュアルのOS XからSSH接続をするなどを参照する。
  4. 新規作成ユーザーと作成した秘密鍵ででログイン。
  5. sudoとか出来る事を確認。
  6. rootのログインと、パスワードを使ってのログインを出来ないようにする。
    ※ rootに戻って実行する。もしくはsudoで。
    $ sed -i 's/^PermitRootLogin.*$/PermitRootLogin no/' /etc/ssh/sshd_config
    $ sed -i 's/^#PermitEmptyPasswords.*$/PermitEmptyPasswords no/' /etc/ssh/sshd_config
  7. SSH接続するportを22から変更(10022にする場合)
    $ sed -i 's/^#Port.*$/Port 10022/' /etc/ssh/sshd_config
    $ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
    $ sed -i 's%$%%' /etc/firewalld/services/ssh.xml
    $ firewall-cmd --reload



参考サイト
このべん
ConoHaでVPSを借りて、SSH接続などの初期設定
ConoHa と CentOS7 でサーバー構築
ConoHaのVPSにWEBサーバを構築する
評判のConoHa VPSを使うときに最初にやっておきたいこと(CentOS編)
VPSのユーザー追加とrootログイン禁止(ConoHaの場合)
[ConoHa]登録からSSHログインまわりの設定まで

プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事