@@ -14,7 +14,8 @@ public extension StaticAction {
1414 getFiles: GetFiles = . live( ) ,
1515 fileCheck: FileCheck = . live( ) ,
1616 rename: MoveItem = . live( ) ,
17- rewriteBinary: TransmogrifierEdit = . live( )
17+ rewriteBinary: TransmogrifierEdit = . live( ) ,
18+ vRewriteBinary: VToolEdit = . live( )
1819 ) -> Self {
1920 . init { current, libName, minos, sdk, log in
2021 guard let archived = try fileCheck ( path: current. addingComponent ( libName) , log? . indented ( ) ) ,
@@ -32,19 +33,34 @@ public extension StaticAction {
3233 log ? ( . normal, " \( objectPath. string) is not Mach-O 64 Object " )
3334 return
3435 }
35- do { try rewriteBinary ( rewritePath: objectPath, minos: minos, sdk: sdk, linkType: . static, log? . indented ( ) ) }
36+ do {
37+ try rewriteBinary (
38+ rewritePath: objectPath,
39+ minos: minos,
40+ sdk: sdk,
41+ linkType: . static,
42+ log? . indented ( ) )
43+ }
3644 catch let error as TransmogrifierError {
3745 switch error {
3846 case . alreadyProcessed:
39- log? . indented ( ) . callAsFunction ( . verbose, " - 🍎 \( objectPath. string) is already simulator object " )
47+ log ? ( . verbose, " Found LC_BUILD_VERSION, try vtool replace IOSSIMULATOR(7) " )
48+ let renamed = Path ( objectPath. string + " _old " )
49+ try rename ( current: objectPath, destination: renamed, log? . indented ( ) )
50+ try vRewriteBinary (
51+ input: renamed,
52+ output: objectPath,
53+ minos: minos,
54+ sdk: sdk,
55+ log? . indented ( ) )
4056 case . noSupportedFormat( let message) :
4157 log? . indented ( ) . callAsFunction ( . verbose, message)
42- fatalError ( message )
58+ throw error
4359 case . noCorrectBinary( let message) :
4460 log? . indented ( ) . callAsFunction ( . verbose, message)
45- fatalError ( message )
61+ throw error
4662 default :
47- fatalError ( " Unintentional errors, Path not found " )
63+ throw error
4864 }
4965 } catch {
5066 throw error
0 commit comments