1

I have used SDKtransform for years (executed through "SDK Transform Assistant") to implement the iOS and OSX frameworks that are not included with Delphi.

However, an increasing number of classes fail to be converted and are not included in the output .pas header file. Right now I need to convert AVAudioEngine from AVFoundation in MacOS 11 (Big Sur), but SDKtransform fails with a lot of these lines added to the log:

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

Could these be due to the way it is defined?

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

How do I autoconvert this type of header definitions?

3
  • Looks like that Git repo hasn't seen commits in over 5 years. A more up to date version appears to be hosted on BitBucket : bitbucket.org/JunHosokawa/sdktransformassistant/src/master Commented Feb 10, 2021 at 20:54
  • Ok, thanks I'll have a look. However, this project only adds a GUI to SDKTransform.exe, which is included with Delphi, and the actual error messages I get is output from SDKTransform. Commented Feb 11, 2021 at 7:46
  • I tried the new version, but it doesn't seem to work. It calls SDKtransform, which returns immediately with instructions about its parameters. Looks like the current version of Transform Assistant is not in a running state? @Brian Have you been able to use it successfully? Commented Feb 11, 2021 at 8:14

1 Answer 1

2

In the Delphi IDE: Go to Tools -> Options -> Deployment -> SDK Manager. Select the macOSX sdk. Click on the "New" button in order to add a new remote path item. Add $(SDKROOT)/usr/include/objc with "File Mask" * and "Path type" Include Path. Close the dialog. Click "Update Local File Cache".

This will add the headers for NSObject.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.