AppBank NetworkのローカルCocoaPod化が完了した!

AppBank NetworkのローカルCocoaPod化が完了した!AppBankNetworkのローカルCocoaPod化が完了しました!一応、ログインして申請しないとSDKはもらえないので、CocoaPod本家にはアップしませんが、やり方だけ備忘的に書いておこうと思います。

まず、CocoaPod化前に決めていた前提。

CocoaPod化する際の前提

  1. 後でわけがわからなくなるとまずいので、ダウンロードしたSDKのディレクトリ構造は変更しない。
  2. AdMobMediationAdapterは使わない。
  3. ローカルのgitで管理する。

/NendSDK_iOS-2.3.2/の直下にgit initしました。:pathで直接指定しても良かったのですが、他のローカルリポジトリと共通のgit方式にしました。gitだとバージョンの管理が楽なので。

Podspec

Pod::Spec.new do |s|
  s.name         = "NendSDK_iOS-2.3.2"
  s.version      = "0.0.1"
  s.summary      = "local nend pod created by me"
  s.description  = <<-DESC
                   This is a nend pod created by me!
                   DESC

  s.homepage     = "https://www.nend.net/m/home"
  s.author       = "Appbank Network"
  s.platform     = :ios, '5.0'
  s.source       = { :git => ".git", :tag => "0.0.1" }
  s.source_files  = 'Nend/NendAd/*.{h,m}'
  s.frameworks = 'AdSupport', 'Security'
  s.vendored_library   = 'Nend/NendAd/libNendAd.a'
  s.requires_arc = true
end

ポイントはいつくかあって、まず、s.sourceのところにある、$HOMEです。最初、~でやったのですが、うまく行きませんでした。また、.aファイルをどうやって導入すればよいのか迷ったのですが、本家のドキュメントをみて、s.vendored_libraryに記述してみたところうまくいったので良かったです。

s.lisenceを記述するとpod lib lint NendSDK_iOS-2.3.2.podspecでwarningは消えますが、ちょっと不明だったので、ローカルということもありpodspecには記述していません。

Podfile

こんな感じです。

pod 'NendSDK_iOS-2.3.2', :git => '$HOME/path/to/NendSDK_iOS-2.3.2/.git', :tag => '0.0.1'

ハマりポイント

  • podspecを変更してもずっと、pod lib lint NendSDK_iOS-2.3.2.podspecで出たエラーが消えない。まぁ、原因はgitでソースを指定していたので、ちゃんとgit commitしていなかったということでした。
  • 最初、.aファイルをs.resourceでしていしていて、うまく動かなかったのですが、途中から、s.vendored_libraryに変えたのに、pod installしても、workspaceのファイル構成が変わらない。。。なんだろうと思ったのですが、一旦、Podfileから削除してpod installして、再度pod installしたらうまくいきました。

あぁ、完了してよかった。こんなかんじでライブラリはできるだけCocoaPodで管理していきたい!

今後

CocoaPodsのsubspecのやり方も覚えていきたい。

後記

こういう編集しないものをローカルCocoaPod化する場合は、:gitじゃなくて:path指定だけで良いのかも。あとは、gitでやるとしたら、サブモジュールでやってもいいのかも。まぁ、別に敢えてややこしくする必要はないので、やっぱり/Nend/NendSDK_iOS-2.3.2/とかいうわけかたにして、:pathでそれぞれのバージョン指定すればいいのかなー。

追記:僕の環境では、:gitでローカルに取りに行った場合には、$HOMEではいけて~ではいけませんでした。逆に、:pathで取りに行った場合は、$HOMEでは行けず、~ではいけました。なんだろー。

参考

Pocket
LINEで送る

You may also like...

  • morizotter

    コメント&ご指摘ありがとうございます!たしかにそうですね。ドキュメントの該当部分に目を通してみました。本文一部修正させていただきました!

  • kishikawa katsumi

    まあ、ローカルpodspecなので適当でいいのですが、authorとlicenseのところに違和感がありますね。(`author`はpodspecの作者じゃなくてライブラリのメンテナ、`license`はMITじゃない(ですよね?))必須じゃないので特に書かなくていいんじゃないでしょうか。