【问题标题】:Delphi SDKtransform: many errors and missing classes in MacOS SDKDelphi SDKtransform:MacOS SDK 中的许多错误和缺少的类
【发布时间】:2021-05-14 06:11:46
【问题描述】:

多年来我一直使用SDKtransform(通过“SDK Transform Assistant”执行)来实现不包含在Delphi 中的iOS 和OSX 框架。

但是,越来越多的类无法转换并且未包含在输出的 .pas 头文件中。现在我需要在 MacOS 11 (Big Sur) 中将 AVAudioEngineAVFoundation 转换,但是 SDKtransform 失败并在日志中添加了很多这些行:

"WARN: cannot add ObjCInterface AVAudioEngine - base class unknown"

这些可能是由于它的定义方式造成的吗?

API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
@interface AVAudioEngine : NSObject {
@private
    void *_impl;
}
- (instancetype)init;
- (void)attachNode:(AVAudioNode *)node;
- (void)detachNode:(AVAudioNode *)node;
...
@property (readonly, nonatomic) BOOL isInManualRenderingMode API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0));
...
@end // AVAudioEngine

如何自动转换这种类型的标头定义?

【问题讨论】:

  • 看起来 Git repo 已经超过 5 年没有看到提交了。 BitBucket 上似乎托管了一个更新的版本:bitbucket.org/JunHosokawa/sdktransformassistant/src/master
  • 好的,谢谢,我去看看。但是,这个项目只是给Delphi附带的SDKTransform.exe添加了一个GUI,而我得到的实际错误消息是从SDKTransform输出的。
  • 我尝试了新版本,但它似乎不起作用。它调用 SDKtransform,它立即返回有关其参数的说明。看起来当前版本的转换助手没有处于运行状态? @Brian你成功使用了吗?

标签: delphi firemonkey


【解决方案1】:

在 Delphi IDE 中:转到工具 -> 选项 -> 部署 -> SDK 管理器。选择 macOSX SDK。单击“新建”按钮以添加新的远程路径项。添加$(SDKROOT)/usr/include/objc 与“文件掩码”* 和“路径类型”Include Path。关闭对话框。点击“更新本地文件缓存”。

这将为 NSObject 添加标头。

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多