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

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

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

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

Swift

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

Q&A

解決済

2回答

2766閲覧

Command Line ToolでのCarthageの利用について

tenergy

総合スコア10

Xcode

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

Swift

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

0グッド

0クリップ

投稿2017/06/20 04:10

編集2017/06/28 05:00

swiftをもっと気軽に使いたいと思い,iOSの開発以外でもswiftを使いたいというモチベーションの元Command Line Toolで開発をしたいと思いました.そこでライブラリを使おうと思いCarthageでインストールしてみると"Library not loaded"のエラーが出てきて前に進めなくなってしまいました.
どうか助けていただけると幸いです.

  • xcode 8.3.3
  • Carthage 0.22.0

やったこととしてはgithubのCarthageのREADMEを見て進めました.まずAlamofireをインストールしようとしています.

  • Cartfileを作り'carthage update --platform OSX'でインストール
  • TARGETSの'Linked Frameworks and Libraries'に'Alamofire.framework'を追加
  • 'Build Phases'にて'New copy file phase'より'Copy Files'を追加して'Destination'を'Products Directory'に変更.'Alamofire.framework.dSYM'を'copy items if needed'と'Create groups'にチェックを入れて追加.

以上のことをしています.一つ気がかりな点としてはCarthageのページには'General'の'Embedded Binaries'にframeworkを追加しなさいと書いてあるのですが,それに当たるものが見当たらなかったので'Linked Frameworks and Libraries'に追加うことです.
今後もSwiftをガンガン使っていくためにどうか乗り越えたい壁なので,どうか助けていただけると幸いです.よろしくお願いいたします.

イメージ説明
イメージ説明


追記
Frameworksフォルダを作成した後そのフォルダ内の.frameworkをLinked Frameworks and Libraiesにドラッグアンドドロップしました.
イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

Command Line ToolとiOS/macOSのアプリケーションは構成が異なっているため、iOS/macOSのと同じ方法ではframeworkが使えません。
iOS/macOSのアプリケーションはアプリケーションパッケージ というフォルダとして生成されます。
Embeded Binaryはこのフォルダの中にコピーされます。
しかし、Command Line Toolは単一のファイルとして生成されるため、Embeded Binaryは追加できません。

解決方法ですが、ご自身でのみご使用になられるのであればホームフォルダ内のLibraryフォルダ内に Frameworksフォルダを作成し、その中に追加で必要となるframeworkを入れてください。
Frameworksの大文字小文字、最後のsに気を付けてください。
この場合ですとAlamofire.frameworkを Frameworksフォルダ内にコピーしてください。
これで、起動時にAlamofire.frameworkがロードされると思います。

ただし、もしかするとAlamofire.frameworkのinstall directoryを変更したうえでビルドし直さなければならないかもしれません。

この辺
とか
この辺
を参照してください。

Linked Frameworks and Libraiesの設定は必要です。
ここに設定されたframeworkなどが起動時に所定の場所から検索され見つかればロードされます。

投稿2017/06/21 08:53

編集2017/06/21 08:59
MasakiHori

総合スコア3384

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

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

tenergy

2017/06/28 04:58

回答ありがとうございます. ホームディレクトリのLibraryにFrameworksをつくり,その中にAlamofire.frameworkを移動した後Linked Frameworks and LibraiesにドラッグアンドドロップでAlamofireを設定したのですが,まだエラーがでてしまうので,解決法をご存知であれば教えていただきたいです.エラーログを追記しておきます.
MasakiHori

2017/06/28 12:38

申し訳ない。 libSwiftCoreの存在を完全に失念してました。 調べましたところSwift Package MangerというものがSwiftに追加されており、これを使うと簡単にcommand line toolを作成できるようです。 こちらが わりと詳しかったです。 http://qiita.com/_tid_/items/c26fcd1b95eaed2dedb2
guest

0

Build PhasesRun Scriptを設定しましたでしょうか?
http://qiita.com/s-harada/items/47295d653ef0cf34d540#run-script

投稿2017/06/21 01:15

tantakan

総合スコア34

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

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

tenergy

2017/06/21 01:48

コメントありがとうございます.Run ScriptはiOSなどで開発するときは記述するものという認識でいました.Run Scriptを追記したところ"Command /bin/sh failed with exit code 1"というコンパイルエラーが出ました.
tantakan

2017/06/21 01:50

`Run script only when installing`にチェックは入ってますかね?
tenergy

2017/06/28 04:34

はい,入れてあります.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問