问题标签 [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.
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 实例。我得到:
如果我尝试构建并部署到我的手机,我会在构建阶段遇到不同的错误,这会阻止它在设备上启动:
...等等。
我尝试返回、重读和重做步骤,并尝试重用我之前成功绑定的一些脚本和设置,但没有成功。
有没有人有什么可以解决这些问题的建议?
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 中做类似的事情。
我已经尝试了一些明显的事情,比如清理和重建应用程序,但没有成功。
我们欢迎所有的建议,
亚当。
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 项目中。
任何帮助都是极好的。谢谢这一直很混乱。
xamarin - Xamarin ios 绑定 dll - 本机链接器找不到 sdk
我正在尝试绑定 pushy.me obj-c 框架。我已经通过 Objective Sharpie 运行它并获取输出 api 定义文件和框架。
从这里我构建文件并获取输出“PushySDK.dll”并在我的 xamarin.ios 项目中引用它。但是当我尝试构建项目时,我得到一个编译错误。
我一直在做一些谷歌搜索,但无法真正找到发生这种情况的确切原因。
我注意到在引用下的构建输出中,这个 dll 在这里被引用了两次。
这是构建日志给出的错误。
我也尝试过添加绑定项目作为参考,但我遇到了同样的问题。我完全不清楚导致此错误的原因,感谢您提供任何帮助。谢谢
编辑:我已将这些标志添加到“其他 mtouch 参数”中
c# - Objective Sharpie 缺少大部分 API
我正在尝试让 Objective Sharpie 为Spotify iOS SDK生成绑定。
我使用以下命令:
但是,输出ApiDefinitions.cs
似乎不包含太多常量之外的内容:
我怎样才能让它为所有类生成定义?(前 SPTAuth)
xamarin - Xamarin iOS 绑定库重复构造函数问题
我在 Xamarin iOS 绑定库中使用由第三方 SDK 代码生成的 Sharpie 工具生成的代码存在重复构造函数的问题。基本上 C# 生成的接口使用 NSFileHandle 作为基本类型,并且 SDK 头文件在其子类中声明相同的指定初始化程序,就像在 NSFileHandler 中一样,所以我得到“成员......已经定义错误”,因为现在绑定库正在生成 C# 构造函数两次 -第一次来自基类,第二次来自子类初始化程序。
Objective-C 代码:
C#绑定库代码:
绑定库生成的代码(*.g.cs):
如何防止绑定库生成构造函数两次从而摆脱错误?
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 namespace
Foundation'。您是否缺少程序集参考?(CS0234) (AFNetworkingBinding)
错误 -/Projects/AFNetworkingBinding/AFNetworkingBinding/ApiDefinition.cs(152,152):错误 CS0234:类型或命名空间名称NSURLCredential' does not exist in the namespace
Foundation'。您是否缺少程序集参考?(CS0234) (AFNetworkingBinding)
xamarin - Xamarin iOS 框架绑定无法在 Xamarin Studio 中找到属性
在解决方案中,所有属性都无法识别,知道如何解决这个问题吗?
我使用 Sharpie 使用sharpie init ios Stripe
and生成 ApiDefinitions 和 Structs cs 文件sharpie ios bind
。
第二个问题是没有创建一个类型,但如果我能通过第一个问题,我可以手动添加它。对此的任何评论都会有很大帮助。
在此处找到 Github 存储库代码, https://github.com/xplatsolutions/Stripe-Xamarin-iOS-Bindings。
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”中的库名称无效
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 文档: