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

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

ただいまの
回答率

90.48%

  • Xamarin

    519questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

sharpie xcode -sdksでなにも表示されない

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 764

otaota

score 22

前提・実現したいこと

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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

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 等に移動させる必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/25 16:45

    確かに、Xcodeの場所を変更したら
    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
    にしたところ、もろもろのファイルが生成されるようになりました。
    ありがとうございます。

    キャンセル

0

ずばり回答ではないと思いますが、思い当たるのはコマンドラインから Xcode を使える状態になっていないという可能性です。
以下を確認してみてください。

  • Xcode のインストール・起動まではできていますでしょうか。
  • ターミナルで xcode-select -p を実行して、Xcode のパスが出力されるか確認してください。
  • 表示されない場合は、sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer を実行してみてください。 (/Applications/Xcode.app の位置やファイル名はご自身の環境に合わせてください)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/24 22:52

    回答ありがとうございます。

    ただ、残念ながらXcodeは普通に使えており、
    xcode-select -p

    /Applications/_Xcode/Xcode721/Xcode.app/Contents/Developer/
    を返してきました。
    ちなみに、
    /Applications/Xcode.app/Contents/Developer
    でないのは、一時期XCode6.xも同居していたためです。(今は消去済みです)

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Xamarin

    519questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。