質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

Q&A

解決済

1回答

1824閲覧

Xcode上におけるPodライブラリの置くスペースについて

sansyou69

総合スコア31

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

0グッド

0クリップ

投稿2020/05/30 00:43

編集2020/05/31 12:21

添付した画像のように、Xcode上におけるPodライブラリのあるスペースがありすぎて、どのようにすればいいか悩みました。

イメージ説明

イメージ説明

2など入れ子のように複雑になっており、昔のことなので忘れてしまいましたが、もしかして自分のやり方がおかしかっただろうか、あるいはこれがデフォルトなんだろうか、と悩みつつ・・・。
結局、「本採用」とするライブラリは、3に全て放り込んだのですが、それで良かったのでしょうか?
『「埋め込み」などであればアプリ自体重くなるのでこうしたらいいよ』など、ご意見のある方がいらっしゃったら、お伺いしたいです。

また、3ではデータが濃くなっているものとそうでないものの違いがありますが、これはどういう理由に基づくものでしょうか。有効性のあるライブラリは濃い色で、そうでないものは薄い、くらいの理由でしょうか?

よろしくお願いします。

比較用:二つ目のアプリ
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/05/30 01:30

最近の CocoaPods では pod install すると勝手に Pods ライブラリをまとめたプロジェクトと、アプリ本体をリンクするためのワークスペースが作られるので、それが一般的だと思いますが、一部それではうまくいかないライブラリがあるかも知れませんね。
sansyou69

2020/05/30 12:32

複雑ですよね。分かりずらいです。もっとシンプルであればいいのに。戸惑うばかりです。
guest

回答1

0

ベストアンサー

回答に関して、こちらの認識に誤りがある場合はどなたかご指摘ください。。

Xcode上におけるPodライブラリのあるスペースがありすぎて、どのようにすればいいか悩みました。

取得元ライブラリのマニュアルに特別な記載がない限り、基本はCocoaPodsのコマンドによる管理に任せる。
のが一般的かと思いますので、悩まなくて(深く考えなくて)良いのではないでしょうか。
※CocoaPodsでライブラリ取り込みを行ったら自動で添付画像1〜4の設定が行われ、基本的には、開発者が追加で設定を行わなくて良い状態になる。したがって、特別な理由がない限りは手を加えない(はず。。です)。


結局、「本採用」とするライブラリは、3に全て放り込んだのですが、それで良かったのでしょうか?

CocoaPods経由で取り込んだライブラリであれば、通常は3に放り込む必要はないかと思います。
※放り込まないと「ビルドが通らない」、「AppStoreに上げる際に不都合がある」など、何かしら理由があったなら仕方がないかもしれません。


3ではデータが濃くなっているものとそうでないものの違いがありますが、これはどういう理由に基づくものでしょうか

ファイルの参照先の違いによるものではないでしょうか?
公式ドキュメントなどが見つけられなかったので、正確な回答じゃないですが。。

  • 薄いファイル:添付画像の様に、workspace/pods 配下のファイルを参照しているもの。もしくは、DrivedDataフォルダ配下の、中間生成ファイルを参照しているもの
  • 濃いファイル:上記以外のもの

xcode

投稿2020/05/30 16:58

tsuki01

総合スコア1751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sansyou69

2020/05/31 12:21

こちらからの申し出に、心良くご回答いただき、誠にありがとうございます m( _ _ )m >取得元ライブラリのマニュアルに特別な記載がない限り、基本はCocoaPodsのコマンドによる管理に任せる。 きっと、そうなんだろうと思います。ただ、エラーが出ている最中、私も試行錯誤する中でいろんなことを試したもので・・・。 何か、おかしなことをやったのかもしれず、それが不安のタネでもあるのですが。 目の前のこと、すなわち、「エラーを失くす」ことに全エネルギーを使って、なんとかそれには成功しました。 だけど、今後なにかアップデートのときなどに、それが理由でおかしなことにならないといいな、という感じです。 >薄いファイル:添付画像の様に、 確かにそのようです。今回も、わざわざ画像まで添付していただき、ありがとうございます。 ついでと言ったら、なんなのですが・・・。 今回、私はアプリを二個作っております。二つ目のアプリは、Link Binaryが一つのディレクトリが見えるだけで、スッキリした感じです。 (※解答欄には画像が貼れないので、本文の方に貼っておきます) 普通(?)のやり方であれば、このようにインストールされる、という感じなのでしょうか? 違いはどのへんで生じたか、おそらくpodのインストールのあたりだとは思うのですが、推測でいいのですが何か思い浮かぶでしょうか? 二つとも、podの中身を消してもう一度インストールする、ということをやったはずですが・・・。 よろしければ、ご意見お願いします。
sansyou69

2020/05/31 12:41

探っているうち、Build SettingsのOther Linker Flagsの設定で、そのような違いが生じるような印象を抱きました。いかがでしょう。
tsuki01

2020/05/31 13:11

【Link Binary〜について】 私自身、質問者様の一つ目のアプリの状態を見たことがなく、はっきりとした原因は答えられそうにありません。申し訳ありません。。 考えられるものとしては以下などでしょうか。(あくまで推測としてご参照ください) ・二つのアプリを異なる時期に作成していたなら、XcodeやCocoaPodsのバージョンによって違いが発生している ・過去に手動でframeworkを追加してしまっていた "Other Linker Flags"もCocoaPods側で自動で設定してくれるものですので、Podsによるライブラリインストール前に"Other Linker Flags"を手動で弄るというのは考えにくい気がします。
sansyou69

2020/05/31 14:41

ご回答ありがとうございます。 >過去に手動でframeworkを追加してしまっていた 多分、これだと思います。 自分なりに、そこを踏まえて、ゼロの状態に戻すところから始めてみました。 $ pod deintegrate $ pod clean $ pod install  ↓ ターミナルで「Other Linker Flagsに$(inherited)を書け」との内容 それで、自分はTARGETSのOther Linker Flagsに$(inherited)を入れました。 すると! 無事、二個目のアプリと同じ状態になりました。 これで解決、と言いたいところなのですが、あともう一つだけ質問をお許しください(本当にすみません・・・) PROJECTにもOther Linker Flagsはあります。 そこにも、$(inherited)は必要なのでしょうか? そもそも、二つある意味がこの場合よくわかりませんが・・・。 ビルドも通ってるしシミュレータでもエラーはないのですが。
tsuki01

2020/05/31 15:01

>PROJECTにもOther Linker Flagsはあります。 >そこにも、$(inherited)は必要なのでしょうか? 記載は不要かと思います。 以下参考リンクの情報などから抜粋すると、 ・PROJECT:複数のTARGETをまとめるもの。TARGETのベースとなる設定を記載する。 ・TARGET:TARGET固有の設定は、それぞれのTARGETに記載する。 (最終的には、TARGETの設定情報が優先されるので、両方に記載しなくても問題なく動作するのではないでしょうか) ※以下参考リンク https://qiita.com/rockname/items/bbe73a001568f0f5e801
sansyou69

2020/05/31 17:57

繰り返しの質問に、心よく応じていただき、感謝しかありません。 記載していただいたURL、じっくり読ませていただきます。 自分はつっかえてばかりなので、その優秀さが羨ましいです(笑)。 何もお返しできなくてすみません。 ベストアンサーにしておきます。 ありがとうございましたm(_ _)m
tsuki01

2020/06/02 01:18

お返事遅れました。 理解力も乏しいですし全く優秀ではないです。。(汗 少しでもお役に立てたならこちらも嬉しいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問