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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

解決済

1回答

4445閲覧

LicensePlistがうまく導入できない

hodoru3sei

総合スコア284

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/05/29 08:12

編集2019/06/03 12:33

iOSライセンス一覧を生成するツールLicensePlistが便利の記事を参考にLicensePlistを導入しようとしたのですがライセンス表示がされません。

自動生成されたSetting.bundleの中にはplistの方法が作成できていそうなのですが、Xcodeプロジェクト直下に移動して何度ビルドしても反映されず設定から確認することができません。
イメージ説明

何か他の手順が必要なのでしょうか?

追記

ライブラリをと少なくしてサンプルプロジェクトで作り直してみました。
Setting.bundleの中に作成されているファイルは以下のものが全てです。
イメージ説明

設定からアプリを開くとSiriと検索しか表示されていない状態で、Licenseというもの自体存在していない状況です。

プロジェクトフォルダにSetting.bundleを入れた状態でライブラリを追加 or 削除するとcom.mono0926.LicensePlistの中身が増えたり減ったりしたのでプロジェクト内への入れ方は間違っていないようでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

使ったことないので外すかもしれませんが、回答させていただきます。

質問(画像)からSetting.bundlesの中身全てが確認できないので、一旦次の手順でお試しください。
※3と4は逆にしないとうまくいかないかも

  1. ドラッグ&ドロップした?Settings.bundleを削除
  2. 普通にXcodeでSettings.bundleを追加

方法がわからない場合はこちらを参考に(画像のある記事を適当に探しました)
0. Settings.bundleの中にRoot.plistが作成されているので、その中身をまるっと消して以下の内容を丸々コピペ
https://raw.githubusercontent.com/mono0926/LicensePlist/master/Settings.bundle/Root.plist

  1. ビルド

投稿2019/05/30 21:12

編集2019/06/05 03:29
xenbeat

総合スコア4258

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

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

hodoru3sei

2019/06/02 12:04 編集

ドラックアンドドロップしてSettings.bundleを追加した場合Root.plistが存在しませんでした。 Xcodeで自分で作成をし、Root.plistを教えていただいたコードに記述しなおしてビルドしてみたのですが、ライセンス表記のListが設定画面に作成できていませんでした。 順番を逆にして試すこともしたのですが、作成されていませんでした。
xenbeat

2019/06/02 12:32 編集

すみませんが、状況をもう少し詳しくお聞かせください。 > Xcodeで自分で作成をし、Root.plistを教えていただいたコードに記述しなおしてビルドしてみたのですが、 Run Scriptの設定がされている前提ですが、ビルドするとXcodeで作成したSettings.bundleの中にFirebase.plist等が自動的に追加されてますでしょうか? 最終的に作成されたSetting.bundleの中身を提示いただけると助かります。 > ライセンス表記のListが設定画面に作成できていませんでした。 「Licenses」という項目は表示されるようになったが、その「Licenses」をタップするとListが表示されず真っ白な画面が表示されるということでしょうか?
hodoru3sei

2019/06/03 12:35

質問に情報の追記をおこないました RunScriptは設定済みです!プロジェクト内に入れた状態でライブラリの削除や追加を行いビルドするとplistが作成しなおされていました。 何回か試したのですが Licensesという項目が表示されませんでした。
xenbeat

2019/06/03 18:44

追記ありがとうございます! 画像を見て気になる点として「Root.plist」はSetting.bundleの中にありますか? (Xcodeから作成すると自動的に作成されるはずです) そして「Root.plist」に回答でお伝えした内容はきっちり反映されていますか? (少しでも追記する場所を間違えていると反映されません) というかRoot.plistが作成されているのであれば、その中身をまるっと消して以下の内容を丸々コピペしてみてください。(追記された場所が間違えている可能性もありますのでこの方が確実かと思います) https://raw.githubusercontent.com/mono0926/LicensePlist/master/Settings.bundle/Root.plist そして保存してビルド。 それでも反映されていなければ、XcodeとiOS Simulatorを再起動してみてください。
hodoru3sei

2019/06/05 02:04

Root.plistというのは現状存在していない状況です。 これはLicensePlistで作成されたSetting.bundleの中に自分で新規に定義するものということでしょうか? > (Xcodeから作成すると自動的に作成されるはずです) 探してみたのですがXcodeのファイルの中にRoot.plistを見つけることができませんでした。
xenbeat

2019/06/05 03:29 編集

> Root.plistというのは現状存在していない状況です。 これが原因です。もう一度、回答でお伝えした手順を1から行っていただけますでしょうか。 手順3は追記場所のミスがありそうなので、上記のコメントでお伝えした内容で回答を更新します。 > これはLicensePlistで作成されたSetting.bundleの中に自分で新規に定義するものということでしょうか? いいえ、回答の中の手順2でお伝えした通り「LicensePlistで作成されたSettings.bundle」ではなく、「Xcodeで作成したSettings.bundle」の中にはRoot.plistが自動的に含まれます。 手順2で紹介した記事(の中の画像)も見てもらえばわかるかと思います。 ここでRoot.plistが作成されないとLicensePlistを使う以前の問題かと思います。
hodoru3sei

2019/06/05 12:32

なるほど、すみません勘違いをしていました。 新規でSetting.bundleを作成したところ設定画面にLicenseとVersionというリストが出るようになりました Licenseの方は > マークがあり遷移可能なのですが開くと何もない状況です。
xenbeat

2019/06/05 18:08 編集

> すみません勘違いをしていました。 いえいえ。 > 設定画面にLicenseとVersionというリストが出るようになりました おー!そこまで来たらあと一歩ですね! > Licenseの方は > マークがあり遷移可能なのですが開くと何もない状況です。 コメントにて「RunScriptは設定済み」とおっしゃっていたので、 ビルドの際に「com.mono0926.LicensePlist」や「〜.plist」等(質問の画像にあるフォルダやファイル)が、Settings.bundleの中に自動作成されましたよね? 初回ビルドであればそれらが反映されない可能性がありますので、もう一度ビルドし直してみてください。
hodoru3sei

2019/06/06 15:21

何度か試したのですが、「com.mono0926.LicensePlist」や「〜.plist」等のファイルが作成されなくなってしまいました。 ライブラリの数を変更してビルドを行うとターミナルが立ち上がるので動いてはいるようなのですが作成されなくなってしまいました。 RunScriptはgithubに記載されていたcocoapodsのものを使っています。以下のコードです ``` if [ $CONFIGURATION = "Debug" ]; then ${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN fi ``` 関係ないとは思うのですが、LicensePlistの前にRunScirptでSwiftformatとSwiftlintを入れているのですがそれが問題だったりするのでしょうか?
xenbeat

2019/06/06 16:05 編集

> RunScriptはgithubに記載されていたcocoapodsのものを使っています。以下のコードです 「 --github-token YOUR_GITHUB_TOKEN」の部分を削除して(次のようにして)再ビルドしてみてください。そのあと、画像等で ”Settings.bundleの中身が全てわかるように” 情報を共有いただけますでしょうか。 ``` if [ $CONFIGURATION = "Debug" ]; then ${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle fi ``` > 関係ないとは思うのですが、LicensePlistの前にRunScirptでSwiftformatとSwiftlintを入れているのですがそれが問題だったりするのでしょうか? これは関係ないと思います。
xenbeat

2019/06/06 15:49

ちなみにusageに記載されているような構成になってないと基本的にはうまくいかないと思うので、作業する上でそれを頭の片隅に入れておいてください。 https://github.com/mono0926/LicensePlist#usage Settings.bundle ├── Root.plist ← ※この中身は手順3の通りに書き換えてください ├── com.mono0926.LicensePlist ← ※これはRunScriptで生成されるはず │ ├── APIKit.plist │ ├── Alamofire.plist │ └── EditDistance.plist ├── com.mono0926.LicensePlist.plist ← ※これはRunScriptで生成されるはず ├── en.lproj │ └── Root.strings └── ja.lproj └── Root.strings
xenbeat

2019/06/06 16:03 編集

「RunScriptで生成されるはず」のファイルが確認できたら、1回目のビルドでは確認できない可能性が高いので、一旦iOS Simulatorを停止して、もう一度ビルドを行って確認してみてください。
xenbeat

2019/06/06 16:00

「これはRunScriptで生成されるはず」が上手く生成されないなら、公式の手順に沿って手動で作成するしかなさそうですね。 https://github.com/mono0926/LicensePlist#usage 1. When you are in the directory that contains your Cartfile or Pods, simply execute license-plist. 2. com.mono0926.LicensePlist.Output directory will be generated. 3. Move the files in the output directory into your app's Settings.bundle. Settings.bundle's sample is here The point is to specify com.mono0926.LicensePlist as license list file on your Root.plist.
hodoru3sei

2019/06/07 10:52

ありがとうございます。 やっと実装することができました。 手順としてはまずxenbeatさんに教えていただいた通りRoot.plistを作成し、 一旦別の場所に退避をさせておいて、自動生成されたSettingBundleをプロジェクト内にドラックアンドドロップをし、退避させておいたRoot.plistをSettingBundle内に入れることで実現ができました! 私の物分かりが悪いせいで長くお付き合いをさせてしまいすみません。ものすごく助かりました! ありがとうございます
xenbeat

2019/06/07 15:16

???? 探り探りの中の回答で色々混乱させてしまったようで反省しています。 ともあれ解決出来て何よりです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問