5

我正在尝试绑定 Custom Native iOS Framework 并在 Sharpie bind -output 绑定的第一阶段遇到此错误。以下是我点击以下命令时的命令和日志:

Sharpie 绑定 --output=filename --namespace=namespacename --sdk=iphoneos11.4 /path/to/the/headerfile

日志:

System.Exception:不支持的clang可用性平台:'bridgeos' at Sharpie.Bind.Attributes.AvailabilityBaseAttribute+d__6.MoveNext () [0x0037d] in /Users/builder/vsts/_work/2/s/Sharpie.Bind/Attributes/AvailabilityBaseAttribute .cs:192 在 System.Linq.Enumerable+SelectManySingleSelectorIterator`2[TSource,TResult].MoveNext () [0x0006f] in <3fb92ec709f44a579da6a23087df403d>:0 在 Sharpie.Bind.Massagers.AvailabilityMassager.Massage (ICSharpCode.NRefactory.CSharp.EntityDeclaration实体)[0x00092] 在 /Users/builder/vsts/_work/2/s/Sharpie.Bind/Massagers/AvailabilityMassager.cs:55 在 Sharpie.Bind.Massagers.AvailabilityMassager.VisitPropertyDeclaration (ICSharpCode.NRefactory.CSharp.PropertyDeclaration propertyDeclaration) /Users/builder/vsts/_work/2/s/Sharpie.Bind/Massagers/AvailabilityMassager.cs 中的 [0x00000]:29 在 ICSharpCode.NRefactory.CSharp.PropertyDeclaration.AcceptVisitor (ICSharpCode.NRefactory.CSharp.IAstVisitor 访问者) [0x00000] 在:0 在 ICSharpCode.NRefactory.CSharp.DepthFirstAstVisitor.VisitChildren (ICSharpCode.NRefactory.CSharp.AstNode 节点) [0x00010]在:0 在 ICSharpCode.NRefactory.CSharp.DepthFirstAstVisitor.VisitTypeDeclaration (ICSharpCode.NRefactory.CSharp.TypeDeclaration typeDeclaration) [0x00000] 在:0 在 Sharpie.Bind.Massagers.AvailabilityMassager.VisitTypeDeclaration (ICSharpCode.NRefactory.CSharp.TypeDeclaration typeDeclaration) [ 0x00006] 在 /Users/builder/vsts/_work/2/s/Sharpie.Bind/Massagers/AvailabilityMassager.cs:24 在 ICSharpCode.NRefactory.CSharp.TypeDeclaration.AcceptVisitor (ICSharpCode.NRefactory.CSharp.IAstVisitor 访问者) [0x00000]在:0 在 ICSharpCode.NRefactory.CSharp.DepthFirstAstVisitor。VisitChildren (ICSharpCode.NRefactory.CSharp.AstNode 节点) [0x00010] 在 :0 在 ICSharpCode.NRefactory.CSharp.DepthFirstAstVisitor.VisitSyntaxTree (ICSharpCode.NRefactory.CSharp.SyntaxTree syntaxTree) [0x00000] 在 :0 在 Sharpie.Bind.DocumentSyntaxTree。 AcceptVisitor (ICSharpCode.NRefactory.CSharp.IAstVisitor visitor) [0x00015] in /Users/builder/vsts/_work/2/s/Sharpie.Bind/DocumentSyntaxTree.cs:37 at Sharpie.Bind.BindingMassager.Massage (ICSharpCode.NRefactory. CSharp.AstNode astNode, Sharpie.Bind.BindingTarget bindingTarget) [0x00033] in /Users/builder/vsts/_work/2/s/Sharpie.Bind/BindingMassager.cs:103 at Sharpie.Bind.BindingFrontend.Bind (Clang.Ast .Decl decl) [0x000b5] in /Users/builder/vsts/_work/2/s/Sharpie.Bind/BindingFrontend.cs:61 at Sharpie.BindTool.HandleTranslationUnit (Clang.Ast.TranslationUnitDecl decl) [0x0018b] 在 /Users/builder/vsts/_work/2/s/Sharpie/BindTool.cs:164 在 Clang.Driver.HandleTranslationUnit (Clang.Ast.TranslationUnitDecl translationUnit) [0x00000] 在 /Users/builder/ vsts/_work/2/s/Clang/Driver.cs:158 在 /Users/builder/vsts/_work/2/s/Clang/Driver.cs 中的 Clang.Driver.HandleTranslationUnit (System.IntPtr translationUnit) [0x00000]: 148 at (wrapper managed-to-native) Clang.Driver:RunInternal (Clang.Driver,string[],string,Clang.Frontend.DiagnosticConsumer) at Clang.Driver.Run (System.String[] inputFiles, System.String[ ] clangArgs, Clang.Frontend.DiagnosticConsumer diagnosticConsumer) [0x00177] in /Users/builder/vsts/_work/2/s/Clang/Driver.cs:139 at Sharpie.ParseTool.Run () [0x005c8] in /Users/builder /vsts/_work/2/s/Sharpie/ParseTool.cs:576 在 Sharpie.BindTool。CoreRun () [0x00001] 在 /Users/builder/vsts/_work/2/s/Sharpie/BindTool.cs:120 在 Sharpie.BindTool.Run () [0x00026] 在 /Users/builder/vsts/_work/2/ s/Sharpie/BindTool.cs:98

以下是命令的详细信息:sharpie xcode -sdks

sdk:appletvos11.4 拱:arm64
sdk:iphoneos11.4 拱:arm64 armv7
sdk:macosx10.13 拱:x86_64 i386
sdk:watchos4.3 拱:armv7k

4

1 回答 1

3

我们遇到了完全相同的问题,并通过卸载 Xcode 9.4(或 9.3,如果你有的话),从苹果下载 Xcode 9.2,安装它并重新启动来解决它。在此之后,您可以将 Sharpie 与 iphoneos11.2 一起使用(而不是 Sharpie 似乎还不支持的 11.4)。

我假设 xcode 9.2 和最新的 swift-updates 引入了一些重大更改。

注意:这只是为了生成绑定,之后,当你有结构和 apidefs 时,你可以升级到 xcode 9.4 并像往常一样编译......

于 2018-06-07T12:42:08.363 回答