Help us understand the problem. What is going on with this article?

iOSのfwをつくってみる

More than 1 year has passed since last update.

目的

以前Carthageで取り込む前提でiOSのフレームワークを作ったが、毎回別PJでビルドするのが、めんどくさくなり、運用の途中で、断念した。

が、アプリの数が増えてくるとカブる部分も出てくるので、なんか他にいい方法がないか再度模索してみた。

そもそも

iOSって、だいたい
* gitのsubmodule
* cocoapods
* carthage
* その他
みたいに外部ライブラリを使う方法がある。

これの、
* gitのsubmodule

は試したことがなかった。社内でlaravelの開発で使われだして、
* 結構使い勝手が良いぞ
* アプリそのものを作りながら進化させられるので、これは効果的ではないか?

という結論に至ったので、そちらで対応する方向に。

結論から言うと

うまく行った。これなら、FWのビルドも、かなり楽!

サンプルPJ

https://github.com/shiratsu/CustomPresentDismissAnim
https://github.com/shiratsu/TestFramework

まずは、

TestFrameworkをsubmouleとして、CustomPresentDismissAnim
に取り込む。

git submodule add https://github.com/shiratsu/TestFramework.git

xcodeのTestFrameworkのPJを追加

TestFramework.xcodeprojをCustomPresentDismissAnimに追加

Embedded Binariesにframeworkを追加

xcodeprojを追加すると、選択肢に出てくるはず。
ここにあると、リリースビルドとか気にしなくて良くなる。
追加する際にFWはGeneric iOS Deviceでビルドしておくこと

submoduleを含むプロジェクトのclone

barを含んだfooプロジェクトをcloneするには以下のコマンドを打ちます。

$ git clone https://github.com/s-nlf-fh/foo.git
$ cd foo
$ git submodule update --remote

submoduleの開発

branchを作ったほうが良い。そうしないとpush出来ない。

import文を書く

import TestFramework

注意点

Framework側のメソッドがpublic( or open、使う側でoverrideさせないなら、public)にしてください。プロジェクト外からアクセスするのに必要です。
あと、backlogからはsubmodule使ってるようにはなぜか見えない。

課題(というか今後どこかでぶつかりそうなこと)

リリース時のビルド作るときどうするかは検証できてない

embeded framework

こちらを使えば、リリースビルドも解決する?まだ詳しく検証してない
→検証した。うまくいった。とくに難しくなかった

問題発生

コンビニでは取り込めたけど、ショットでは取り込めない(開発ビルドはできるけどリリースビルドは作れない。)

以下を参考にした

embeded frameworkは使わず、以下の方法を取った
https://qiita.com/wai21/items/3a2a7a7170ab9c5c1952#%EF%BC%96%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%A8%E5%AE%9F%E6%A9%9F%E3%81%AE%E5%85%B1%E9%80%9A%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B

ちゃんと確認してないけど、以下でも良いと思う。
https://medium.com/allatoneplace/writing-custom-universal-framework-in-xcode-9-and-ios-11-7a63a2ce024a

大変疲れた。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした