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

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

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

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

Q&A

解決済

2回答

2021閲覧

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

otaota

総合スコア30

Xamarin

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

0グッド

0クリップ

投稿2017/01/10 07:28

###前提・実現したいこと
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)

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

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

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

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

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

guest

回答2

0

ベストアンサー

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/24 14:42

iseebi

総合スコア96

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

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

otaota

2017/01/25 07: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 と表示されました。ありがとうございます。 続きの作業は今時間が取れないので週末に試してみます。
otaota

2017/01/31 00:47

回答遅くなりました。 確かに、/Applications/Xcode721.app にしたところ、もろもろのファイルが生成されるようになりました。 ありがとうございます。
guest

0

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

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

投稿2017/01/24 11:17

iseebi

総合スコア96

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

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

otaota

2017/01/24 13:52

回答ありがとうございます。 ただ、残念ながらXcodeは普通に使えており、 xcode-select -p は /Applications/_Xcode/Xcode721/Xcode.app/Contents/Developer/ を返してきました。 ちなみに、 /Applications/Xcode.app/Contents/Developer でないのは、一時期XCode6.xも同居していたためです。(今は消去済みです)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問