问题标签 [objective-sharpie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
940 浏览

xamarin - Xamarin iOS 绑定,在库中找不到符号

我的 Xamarin.iOS 项目需要一个草图/绘画控件,虽然我似乎找不到与 C# 兼容的控件,但我确实找到了一个用 Objective C 编写的好的组件。https://github.com/acerbetti/ACEDrawingView

我以前做过 Xamarin 绑定,所以我希望这个过程会相当简单,但不幸的是,我在此过程中遇到了一些障碍。

我开始创建我的静态库并使用 ant 构建脚本制作 FAT 二进制文件以覆盖设备和模拟器:

我的蚂蚁脚本片段

接下来,我跑了

在头文件上获取我的 ApiDefinitions 和 Structs 和 Enum 文件。

我检查并删除了验证属性。(他们看起来都很好。)但这就是我的其他一些问题的开始。

为了尝试继续前进并获得一些工作,我只是注释掉了这个参考。

然后我遇到了多个类似的问题:

我认为它与此有关:

和这个:

我试图解决这个问题,使接口名称保持一致(我尝试了 IACEDrawingTool 和 ACEDrawingTool。)这样做克服了这个错误并允许我编译

我的一个枚举出来了

在这种情况下,我找不到如何处理 [Native] (所以再一次,为了测试,我删除了它。)我尝试使用从枚举中删除 nuint 并使用 uint。这两种方法似乎都可以解决错误。

因此,修复了这些错误后,我能够从绑定项目中生成 .dll 并将其添加到我的主项目中。

现在,我又遇到了 2 个问题。

如果我构建并部署到模拟器,我可以运行我的应用程序,直到我尝试从绑定中创建一个新的 ACEDrawingView 实例。我得到:

如果我尝试构建并部署到我的手机,我会在构建阶段遇到不同的错误,这会阻止它在设备上启动:

...等等。

我尝试返回、重读和重做步骤,并尝试重用我之前成功绑定的一些脚本和设置,但没有成功。

有没有人有什么可以解决这些问题的建议?

0 投票
1 回答
917 浏览

ios - Xamarin 表单应用程序 - 错误 ITMS-90171 无效的捆绑结构

我正在尝试创建 Xamarin Forms 应用程序的发布版本,但在上传到 App Store 时遇到错误 - ITMS-90171:“无效的构建结构”。

完整的错误是:

错误 ITMS-90171:“无效的捆绑包结构 - 不允许使用二进制文件 'x.app/Frameworks/GBPing.framework/GBPing.a'。您的应用不能包含独立的可执行文件或库,除了受支持捆绑包的 CFBundleExecutable .有关 iOS 应用程序包结构的信息,请参阅https://developer.apple.com/go/?id=bundle-structure上的包编程指南。”

我使用 Sharpie 和 CocoaPods 创建 GBPing 框架,然后按照 Binding Objective-C Libraries 指南创建绑定项目。

该应用程序工作正常,我可以在设备上成功运行它,但我无法将发布版本上传到 App Store。

从谷歌搜索看来,在 Xcode 中似乎有一种方法可以阻止该文件被复制到二进制文件中,但我无法弄清楚如何在 Xamarin 中做类似的事情。

我已经尝试了一些明显的事情,比如清理和重建应用程序,但没有成功。

我们欢迎所有的建议,

亚当。

0 投票
2 回答
318 浏览

c# - 创建 Xamarin IOS 绑定库的问题

我需要为 pushy.me 的 pushy 框架创建一个绑定库

我一直在这里阅读本教程。

http://blog.xhackers.co/xamarin-c-binding-of-a-cocoapods-ios-sdk-using-sharpie/

所以我使用命令“sharpie pod init Pushy”

这似乎工作正常,我下载了具有强硬框架的 pod。然后我使用命令“sharpie pod bind”,它给了我一个输出 Pods_ObjectiveSharpieIntegration.framework 但没有与此关联的 .a 文件。所以从这里我无法弄清楚如何将它导入到 xamarin ios 项目中。

任何帮助都是极好的。谢谢这一直很混乱。

0 投票
1 回答
933 浏览

xamarin - Xamarin ios 绑定 dll - 本机链接器找不到 sdk

我正在尝试绑定 pushy.me obj-c 框架。我已经通过 Objective Sharpie 运行它并获取输出 api 定义文件和框架。

从这里我构建文件并获取输出“PushySDK.dll”并在我的 xamarin.ios 项目中引用它。但是当我尝试构建项目时,我得到一个编译错误。

我一直在做一些谷歌搜索,但无法真正找到发生这种情况的确切原因。

我注意到在引用下的构建输出中,这个 dll 在这里被引用了两次。

这是构建日志给出的错误。

我也尝试过添加绑定项目作为参考,但我遇到了同样的问题。我完全不清楚导致此错误的原因,感谢您提供任何帮助。谢谢

编辑:我已将这些标志添加到“其他 mtouch 参数”中

0 投票
1 回答
437 浏览

c# - Objective Sharpie 缺少大部分 API

我正在尝试让 Objective Sharpie 为Spotify iOS SDK生成绑定。

我使用以下命令:

但是,输出ApiDefinitions.cs似乎不包含太多常量之外的内容:

我怎样才能让它为所有类生成定义?( SPTAuth

0 投票
1 回答
488 浏览

xamarin - Xamarin iOS 绑定库重复构造函数问题

我在 Xamarin iOS 绑定库中使用由第三方 SDK 代码生成的 Sharpie 工具生成的代码存在重复构造函数的问题。基本上 C# 生成的接口使用 NSFileHandle 作为基本类型,并且 SDK 头文件在其子类中声明相同的指定初始化程序,就像在 NSFileHandler 中一样,所以我得到“成员......已经定义错误”,因为现在绑定库正在生成 C# 构造函数两次 -第一次来自基类,第二次来自子类初始化程序。

Objective-C 代码:

C#绑定库代码:

绑定库生成的代码(*.g.cs):

如何防止绑定库生成构造函数两次从而摆脱错误?

0 投票
0 回答
196 浏览

xamarin.ios - 使用客观 Sharpie 错误将 AFNetworking cocoapod 绑定到 Xamarin.IOS

我已遵循本指南 [ https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/examples/cocoapod/] 并创建了一个绑定项目,添加了两个生成文件的内容绑定文件夹(AFNetworking_ApiDefinitions.cs 和 AFNetworking_StructsAndEnums.cs)。然后添加文件夹中的 AFNetworking.framework 作为对绑定项目的本地引用,并且有很多错误,除了这 4 个错误之外,我几乎解决了所有问题。 // -(BOOL)evaluateServerTrust:(SecTrustRef _Nonnull)serverTrustforDomain(NSString* _Nullable)domain; [Export("evaluateServerTrust:forDomain:")] unsafe bool EvaluateServerTrust(SecTrustRef* serverTrust, [NullAllowed] string domain); } 错误 -/AFNetworkingBinding/AFNetworkingBinding/ApiDefinition.cs(34,34):错误 CS0246:找不到类型或命名空间名称“SecTrustRef”。您是否缺少程序集参考?(CS0246) (AFNetworkingBinding)

错误 -Projects/AFNetworkingBinding/AFNetworkingBinding/ApiDefinition.cs(28,28):错误 CS0246:找不到类型或命名空间名称“SCNetworkReachabilityRef”。您是否缺少程序集参考?(CS0246) (AFNetworkingBinding)

错误 - /Projects/AFNetworkingBinding/AFNetworkingBinding/ApiDefinition.cs(137,137):错误 CS0234:类型或命名空间名称NSURLCredential' does not exist in the namespaceFoundation'。您是否缺少程序集参考?(CS0234) (AFNetworkingBinding)

错误 -/Projects/AFNetworkingBinding/AFNetworkingBinding/ApiDefinition.cs(152,152):错误 CS0234:类型或命名空间名称NSURLCredential' does not exist in the namespaceFoundation'。您是否缺少程序集参考?(CS0234) (AFNetworkingBinding)

0 投票
1 回答
115 浏览

xamarin - Xamarin iOS 框架绑定无法在 Xamarin Studio 中找到属性

在解决方案中,所有属性都无法识别,知道如何解决这个问题吗?

我使用 Sharpie 使用sharpie init ios Stripeand生成 ApiDefinitions 和 Structs cs 文件sharpie ios bind

第二个问题是没有创建一个类型,但如果我能通过第一个问题,我可以手动添加它。对此的任何评论都会有很大帮助。

在此处找到 Github 存储库代码, https://github.com/xplatsolutions/Stripe-Xamarin-iOS-Bindings

0 投票
1 回答
706 浏览

ios - 使用绑定项目将本机库 libxml2 链接到 xamarin.ios 项目

我有一个使用库 libxml2.tbd 的 xcode 代码,我需要使该代码成为一个静态库 (myProjectLib.a),可以按照以下官方指南在 Xamarin.ios 中使用: 绑定 iOS 库

问题是我在构建 xamarin 项目时遇到了很多关于未定义符号的错误,就好像该项目无法链接 libxml2

错误 MT5210:本机链接失败,未定义符号:_xmlTextWriterFlush。请确认所有必要的框架都已被引用,并且本机库已正确链接到

我成功地做了几次这个绑定,但只是没有依赖库。但必须有一个解决方案来链接它。

我已经尝试过的事情:
- 将 libxml2.dylib 添加到 xcode 库项目(xamarin 中的相同错误)
- 将(-libxml2,-lxml2)添加到 xcode 库项目中的其他链接器标志(xamarin 中
的相同错误) - 添加 libxml2。 dylib 文件到 xamarin 绑定项目中,xamarin 应用程序项目资源始终复制选项(xamarin 中的相同错误)

最后一次尝试:
-adding --gcc_flags="-stdlib=libxml2" into (Additional mtouch arguments) in xamarin app project,给出了另一个错误,即名称无效

错误 MT5209:本机链接错误:clang:错误:参数“-stdlib=libxml2”中的库名称无效

0 投票
1 回答
252 浏览

c# - 虽然在 xamarin 中绑定静态库时出现以下错误

我已经运行了以下命令

Sharpie 绑定-输出 xyz -命名空间 xyz -sdk iphoneos10.3 /Users/maheshwari/Projects/xyz/xyz/redparkSerial.h

输出:

自动绑定已完成,但有一些 API 已被标记为 [Verify] 属性。虽然应该审核整个绑定以获得最佳 API 设计实践,但更仔细地查看具有以下验证属性提示的 API:

MethodToProperty(9 个实例):Objective-C 方法由于诸如不带参数和返回值(非 void 返回)之类的约定而被绑定为 C# 属性。通常,像这样的方法应该绑定为属性以呈现更好的 API,但有时可能会出现误报,并且绑定实际上应该是一种方法。

InferredFromMemberPrefix(5 个实例):这个最初的匿名声明的名称取自其成员的公共前缀。

一旦您验证了一个验证属性,您应该将它从绑定源代码中删除。验证属性的存在会故意导致构建失败。有关上述验证属性提示的更多信息,请通过运行“sharpie docs”或访问以下 URL 查阅 Objective Sharpie 文档: