sharpie xcode -sdksでなにも表示されない
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 1,411
前提・実現したいこと
Xamarin.formsのコードからネーティブ言語(Objective-CやJava)で書かれた関数を呼べるようにしようと勉強していたところ、まずはObjective-Cに関しては、Objective Sharpieというものを使って、ファイルを自動生成する必要があることはわかりました。(Javaは後回し)
参考:
http://mattsudev.hatenablog.com/entry/2015/09/25/193859
http://qiita.com/iseebi/items/7e645bde85a04ebef371
幾つかのサイトを見ても
sharpie xcode -sdks
を実行すると、なにかしらの情報が取得できるようですが、なぜか自分の環境ではなにも表示されません。
それが原因かわかりませんが、適当にosのバージョンを決め打ちして
sharpie bind
を実行してもエラーになってしまいます。
とりあえず、
sharpie xcode -sdks
がなにも返さない原因としてどのようなことが考えられますでしょうか?
発生している問題・エラーメッセージ
MacBook-Pro:tmp $ sharpie bind -output Output -namespace TmpTmp -sdk iphoneos9.1 header/*.h
[ERROR] FATAL UNHANDLED EXCEPTION: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Sharpie.Tooling.Tool+ExitException: Exception of type 'Sharpie.Tooling.Tool+ExitException' was thrown.
at Sharpie.ParseTool+ParseOptionSection.SetTargetSdk (System.String sdkIdentifier) <0x1146e72e0 + 0x00176> in <filename unknown>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x1146e6650 + 0x000bb> in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x1146e6650 + 0x00139> in <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) <0x1146e72a0 + 0x0002a> in <filename unknown>:0
at Sharpie.Tooling.ReflectionBoundOption.Bind (System.String value) <0x1146dcc80 + 0x00309> in <filename unknown>:0
at Sharpie.Tooling.Tool.ProcessArgument () <0x1146d3850 + 0x0058b> in <filename unknown>:0
at Sharpie.ParseTool.ProcessArgument () <0x1146dab50 + 0x00086> in <filename unknown>:0
at Sharpie.Tooling.Tool.ProcessArguments () <0x1146d37d0 + 0x0002d> in <filename unknown>:0
at Sharpie.Tooling.Tool.Run (IEnumerable`1 args) <0x1146cdcc0 + 0x00637> in <filename unknown>:0
at Sharpie.Tooling.ToolRunnerTool.Run () <0x1146d8f80 + 0x00289> in <filename unknown>:0
at Sharpie.Entry+SharpieToolRunnerTool.Run () <0x1146d8eb0 + 0x0002c> in <filename unknown>:0
at Sharpie.Tooling.Tool.Run (IEnumerable`1 args) <0x1146cdcc0 + 0x0064a> in <filename unknown>:0
at Sharpie.Tooling.ToolRunnerTool.Run (IEnumerable`1 args, System.Action`1 aboutToRunToolHandler) <0x1146cdc20 + 0x0005c> in <filename unknown>:0
at Sharpie.Entry.Main (System.String[] args) <0x110ec4e60 + 0x0032b> in <filename unknown>:0
試したこと
-sdkのあとのiphoneosのバージョンを適当に変えてみても結果は変わりませんでした。
補足情報(言語/FW/ツール等のバージョンなど)
Object Sharpie 3.3.0
Xamarin 6.1.3(build 19)
Mac Note Pro
OS X Yosemite(10.10.5)
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
Objective Sharpie は利用できる Xcode の位置に制限があり、/Applications/Xcode*.app
に配置される必要があります。
Objective Sharpie のドキュメント に以下のように記載されています。
Objective Sharpie looks for SDKs installed in any Xcode*.app under the /Applications directory
ですので、otaota さんの環境ですと現在の /Applications/_Xcode/Xcode721/Xcode.app
から /Applications/Xcode.app
とか /Applications/Xcode721.app
等に移動させる必要があります。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
ずばり回答ではないと思いますが、思い当たるのはコマンドラインから Xcode を使える状態になっていないという可能性です。
以下を確認してみてください。
- Xcode のインストール・起動まではできていますでしょうか。
- ターミナルで
xcode-select -p
を実行して、Xcode のパスが出力されるか確認してください。 - 表示されない場合は、
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
を実行してみてください。 (/Applications/Xcode.app
の位置やファイル名はご自身の環境に合わせてください)
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2017/01/25 16:45
sdk: appletvos9.1 arch: arm64
sdk: iphoneos9.2 arch: arm64 armv7
sdk: macosx10.11 arch: x86_64 i386
sdk: watchos2.1 arch: armv7k
と表示されました。ありがとうございます。
続きの作業は今時間が取れないので週末に試してみます。
2017/01/31 09:47
確かに、/Applications/Xcode721.app
にしたところ、もろもろのファイルが生成されるようになりました。
ありがとうございます。