Use TestBitDemo as the main project, it is a swift project.
The TestReFwA project is a Framework, and it uses the Relocatable Object File Mach-O type, inside the TestBitDemo project.
The TestStFwB project is a Framework, and it uses Static Library Mach-O type, inside the TestReFwA Framework.
When TestStFwB uses @available this keyword, then TestBitDemo to do Archive --->Rebuild from Bitcode and App Thinning operations, Will appear this error(CmdSpec::NonZeroExcitException) in every time.
But if I create a new Framework and uses Static Library Mach-O type, and append @available keyword in the OC file, and inside to TestBitDemo.
When TestBitDemo to do Archive --->Rebuild from Bitcode and App Thinning operations again, it will succeed.
Is this a very magical phenomenon?
The initial suspicion is because there are two ways to use available in Swift. Because Swift can use #available and @available methods.
Please list the steps you took to reproduce the issue:
1. TestBitDemo to do Archive --->Rebuild from Bitcode and App Thinning operations (Make sure the TestStFwA framework not inside).
2. Please Check the Rebuild from the Bitcode button and App Thinning button too.
3. you will get CmdSpec::NonZeroExcitException error.
4. Put the TestStFwA Framework inside to TestBitDemo project.
5. Do step 2 again, you will get Bitcode to succeed.
My development environment :
The Swift version is 4.2 Xcode Version 10.1 (10B61)