securing / IOSSecuritySuite

iOS platform security & anti-tampering Swift library
https://www.securing.biz/
Other
2.27k stars 272 forks source link

emits an invalid Swift module interface, due to a public type (IOSSecuritySuite.IOSSecuritySuite class) has the same name as a module #110

Closed marsepu closed 3 months ago

marsepu commented 5 months ago

Due to the invalid Swift module interface, a IOSSecuritySuite binary outputted with an older Swift toolchain will not be considered compatible newer Swift toolchains.

Example:

Analysis:

  1. Root cause is the public IOSSecuritySuite class which has the same name as the module.
  2. The official Swift github issue tracker has already documented this as a known issue:

Solution:

Example of the Xcode 15.x build error: Failed to build module 'IOSSecuritySuite'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)', while this compiler is 'Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)'). Please select a toolchain which matches the SDK.

r3ggi commented 3 months ago

Hey!

First of all - thank you for your suggestion. After further analysis and discussion with some iOS devs we decided not to implement this. It would break backwards compatibility which in our opinion has worse impact than incompatibility with outputs from old Swift toolchains