4. Looking at the framework's umbrella header
“Is the umbrella header intentionally exposing only a subset of the SDK headers, or should all public SDK headers be available through st25sdkFramework.h?”
=> st25sdkFramework.h intentionally exposes only the main ST25SDK and J2ObjC headers needed by your app. You should also configure the ST25SDK and J2ObjC search paths in your project settings.
5. Looking at the NFC Tap sample application
“If st25sdkFramework.framework is provided as the prebuilt framework, why does the NFC Tap sample project also contain libST25SDK.a?
I would like to understand the purpose of this static library and how it relates to the prebuilt framework.”
=> No, STSW-ST25IOS002 is different. It includes the full ST25SDK header files and the static library libst25SDK.a, but it does not contain ST25SDK.framework.
I suggest you take a look at the sample application STSW-ST25IOS005, which uses st25sdkframework.
6. My current experiment
Your approach is quite good. it shows initiative and a good understanding of how the SDK is structured. However, it is not necessary.
The main issue is that you started from a setup that was originally using the static library and tried to move it to st25sdkFramework. The framework integration should be used as provided, without manually re-adding headers or excluding .m files from the SDK sources.
Please refer to the STSW-ST25IOS005 sample application, which is the correct example for using st25sdkFramework.
Question 1 — Why is libST25SDK.a present?
Please, ref to STSW-ST25IOS005 sample application where only st25sdkFramework is present and no libST25SDK
Question 2 — Do I actually need to build J2ObjC 2.4?
No, you do not need to build J2ObjC 2.4 if you are using st25sdkframework directly.
The framework already includes the required headers and the embedded libraries, so no additional J2ObjC build step is needed.
Question 3 — What is the correct integration process?
1. Add st25sdkFramework.framework
2. Add/embed the framework in the application
3. Configure the required framework/header search paths
Question 4 — Are my current steps valid?
Not needed if you use the st25sdkframework directly.
Question 5 — What is the purpose of the SDK .m files?
These .m files are not needed when you integrate the prebuilt st25sdkFramework directly.
If the framework is already provided, its implementation is already compiled inside it, so the .m files from the sample’s include folder should be ignored. Their presence in the NFC Tap sample looks like a leftover or an artifact from the original development setup, where the project used the static library flow.
So, for the prebuilt framework integration:
- use the framework,
- keep the required
.h headers, - do not compile the SDK
.m files separately.
Question 6 — What is the correct way to access headers that are not in the umbrella header?
Yes, you can add them manually to the umbrella header.
If some SDK headers such as Type1Command.h or Type1Tag.h are part of the SDK but not exposed by st25sdkFramework.h, adding the missing imports manually is a valid workaround to make those APIs visible in your project.
That said, if you are using the prebuilt framework as intended, the recommended approach is to rely on the headers already exposed by the framework sample and use the same integration pattern as in STSW-ST25IOS005.
8. What I am ultimately trying to understand
Yes — if you use the prebuilt st25sdkFramework.framework, you do not need to build J2ObjC 2.4 separately. The prebuilt framework already contains the required J2ObjC pieces.
As for the NFC Tap sample: it contains libST25SDK.a and the st25sdklib/include source files because that sample was built around the static library integration flow, not the prebuilt framework flow. In other words, it reflects a different packaging/setup and is not the same integration model as st25sdkFramework.framework.
So the short answer is:
- Prebuilt framework: self-contained, no separate J2ObjC 2.4 build needed.
- NFC Tap sample: uses the static-library-based structure, which is why you see
libST25SDK.a and the source/include files.
Thank you for your interest and for your detailed questions. I hope the explanations provided have been clear and helpful.