johnno1962 / InjectionIII

Re-write of Injection for Xcode in (mostly) Swift
MIT License
4.07k stars 319 forks source link

Wrong class is injected #351

Closed cpd closed 3 years ago

cpd commented 3 years ago
💉 Compiling /Users/mtriohin/Documents/XcodeProjects/ios/AppName/Controllers/Unauthorized/Login/LoginCardView.swift
💉 Loading .dylib ...
objc[7205]: Class _TtC7AppName10SearchView is implemented in both /Users/mtriohin/Library/Developer/CoreSimulator/Devices/2AE15907-717E-4BB0-B912-28647383A11E/data/Containers/Bundle/Application/50C9FF9D-3BC2-4743-8153-7E8B03AF394B/AppName.app/AppName (0x1046fb560) and /Users/mtriohin/Library/Developer/CoreSimulator/Devices/2AE15907-717E-4BB0-B912-28647383A11E/data/Containers/Data/Application/4FB026A0-E9FC-4784-BA40-A13561410C00/tmp/eval110.dylib (0x10dda8aa8). One of the two will be used. Which one is undefined.
💉 Loaded .dylib - Ignore any duplicate class warning ⬆️
💉 Injected class 'AppName.SearchView' (5,8)
💉 Interposed 7 function references.

beta 7

image image image image

Same behaviour with last ~3 Xcode and mac os betas, tried also older versions of InjectionIII - nothing changed, worked fine with Xcode 12.5.1 but after updating to mac os beta 7 cannot use Xcode 12

image
cpd commented 3 years ago
💉 Compiling /Users/mtriohin/Documents/XcodeProjects/ios/AppName/Controllers/Authorized/Inbox/Notifications/NotificationsViewController.swift
💉 Loading .dylib ...
💉 Loaded .dylib - Ignore any duplicate class warning ⬆️
💉 Injected value type 'AppName.Profile_Pin5ChangeRequest'
💉 Injected value type 'AppName.Profile_VisibilitySetting'
💉 Injected value type 'AppName.Profile_Pin5ChangeResponse'
💉 Injected value type 'AppName.Profile_AccountVisibilityRequest'
💉 Interposed 17 function references.

although NotificationsViewController.swift contains only one class named as file NotificationsViewController

johnno1962 commented 3 years ago

Hi, seems like it might be injecting the wrong object file. Do you have another file named NotificationsViewController.* in your project? Xcode 13 compiles multiple files at once.

cpd commented 3 years ago

Do you have another file named NotificationsViewController.* in your project?

Hi, only one, checked both in Build Phases and via Finder

johnno1962 commented 3 years ago

Can you send me the compilation command recorded in your build logs for NotificationsViewController.swift?

cpd commented 3 years ago
CompileSwift normal x86_64 /Users/mtriohin/Documents/XcodeProjects/ios/AppName/Controllers/Authorized/Inbox/Notifications/NotificationsViewController.swift (in target 'AppName' from project 'AppName')
    cd /Users/mtriohin/Documents/XcodeProjects/ios
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c -filelist /var/folders/2y/3x808vm10b3dp3ngrhy80q9w0000gn/T/TemporaryDirectory.LQBNwC/sources-1 -primary-file /Users/mtriohin/Documents/XcodeProjects/ios/AppName/Controllers/Authorized/Inbox/Notifications/NotificationsViewController.swift -emit-module-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController\~partial.swiftmodule -emit-module-doc-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController\~partial.swiftdoc -emit-module-source-info-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController\~partial.swiftsourceinfo -emit-dependencies-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController.d -emit-reference-dependencies-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController.swiftdeps -serialize-diagnostics-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController.dia -target x86_64-apple-ios11.0-simulator -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator15.0.sdk -I /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/AloeStackView -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Charts -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Cluster -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseABTesting -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseCore -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseCoreDiagnostics -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseCrashlytics -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseInstallations -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseMessaging -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseRemoteConfig -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/GoogleDataTransport -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/GoogleUtilities -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/IQKeyboardManagerSwift -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/InputMask -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Kingfisher -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/MBProgressHUD -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/MaterialShowcase -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/PhoneNumberKit -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/PromisesObjC -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/ReachabilitySwift -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Realm -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/RealmSwift -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SWRevealViewController -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SWXMLHash -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SearchTextField -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SwiftProtobuf -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SwipeCellKit -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/TinyConstraints -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/TrustKit -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/URITemplate -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/nanopb -F /Users/mtriohin/Documents/XcodeProjects/ios/Pods/FirebaseAnalytics/Frameworks -F /Users/mtriohin/Documents/XcodeProjects/ios/Pods/GoogleAppMeasurement/Frameworks -F /Users/mtriohin/Documents/XcodeProjects/ios/Pods/Realm/core -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/FirebaseAnalytics -F /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/GoogleAppMeasurement -enable-testing -g -module-cache-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity\=checked -Onone -D DEBUG -D COCOAPODS -D COCOAPODS -new-driver-path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-driver -serialize-debugging-options -Xcc -working-directory -Xcc /Users/mtriohin/Documents/XcodeProjects/ios -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift -enable-anonymous-context-mangled-names -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/AppName-generated-files.hmap -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/AppName-own-target-headers.hmap -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/AppName-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/AppName-project-headers.hmap -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/AloeStackView/AloeStackView.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Charts/Charts.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Cluster/Cluster.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseABTesting/FirebaseABTesting.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseCore/FirebaseCore.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseCrashlytics/FirebaseCrashlytics.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseInstallations/FirebaseInstallations.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseMessaging/FirebaseMessaging.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/FirebaseRemoteConfig/FirebaseRemoteConfig.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/GoogleDataTransport/GoogleDataTransport.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/GoogleUtilities/GoogleUtilities.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/InputMask/InputMask.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Kingfisher/Kingfisher.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/MBProgressHUD/MBProgressHUD.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/MaterialShowcase/MaterialShowcase.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/PhoneNumberKit/PhoneNumberKit.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/PromisesObjC/FBLPromises.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/ReachabilitySwift/Reachability.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/Realm/Realm.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/RealmSwift/RealmSwift.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SWRevealViewController/SWRevealViewController.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SWXMLHash/SWXMLHash.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SearchTextField/SearchTextField.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SwiftProtobuf/SwiftProtobuf.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/SwipeCellKit/SwipeCellKit.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/TinyConstraints/TinyConstraints.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/TrustKit/TrustKit.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/URITemplate/URITemplate.framework/Headers -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/nanopb/nanopb.framework/Headers -Xcc -I/Users/mtriohin/Documents/XcodeProjects/ios/Pods/Headers/Public -Xcc -I/Users/mtriohin/Documents/XcodeProjects/ios/Pods/Headers/Public/Firebase -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/realm-monorepo/Headers -Xcc -I/Users/mtriohin/Documents/XcodeProjects/ios/Pods/Firebase/CoreOnly/Sources -Xcc -I/Sources/FBLPromises/include -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/DerivedSources-normal/x86_64 -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/DerivedSources/x86_64 -Xcc -I/Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/DerivedSources -Xcc -DDEBUG\=1 -Xcc -DCOCOAPODS\=1 -Xcc -DDEBUG\=1 -Xcc -DPB_FIELD_32BIT\=1 -Xcc -DPB_NO_PACKED_STRUCTS\=1 -Xcc -DPB_ENABLE_MALLOC\=1 -module-name AppName -target-sdk-version 15.0.0 -o /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/NotificationsViewController.o -index-store-path /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Index/DataStore -index-system-modules

this one?

johnno1962 commented 3 years ago

Thanks, I don't see anything there. Seems you have quite a large project, would you be able to email the complete build.log to github at johnholdsworth.com (View the build and click the "Export" button)

cpd commented 3 years ago

did you received email? looks like I sent it but Mail app shows it as a draft..

johnno1962 commented 3 years ago

Didn't get it. Did you zip it?

cpd commented 3 years ago

Did you zip it?

Ooops, sent it now as zip.

johnno1962 commented 3 years ago

Got it, looking now.

johnno1962 commented 3 years ago

Is TeamView an option?

cpd commented 3 years ago

Is TeamView an option?

It's a work project so I don't think I'm allowed. Do you have any ideas I might try?

johnno1962 commented 3 years ago

Can you switch to the HotReloading project? HotReloading is easier to put extra print statements into to debug this.

cpd commented 3 years ago

Yep. HotReloading builds wrong file too. What I have to do? Turn on some debug mode?

johnno1962 commented 3 years ago

Are you still about? This is a new problem with Xcode 13 that we'll need to iron out. Let me know when you're about tomorrow morning. And I can make branch we can work with. cc: @zenangst

johnno1962 commented 3 years ago

Can you tell me what the file name is that contains AppName.Profile_Pin5ChangeRequest etc?

cpd commented 3 years ago

Settings.pb.swift

pb - protobuf, generated swift code from protobuf models, basically a few struct / enums with some properties it's always random what file is injected instead of right one for example if you add print("hello"), save file then move that print one line below it inject classes from another random file

johnno1962 commented 3 years ago

OK, I've pushed a new branch of HotReloading 'xcdoe-13' which logs the objectFile it finds. Can you try it please? The output will be in /tmp/hot_reloading.log when you save a file.

cpd commented 3 years ago
🔥 HotReloading connected /Users/mtriohin/Downloads/ios/AppName.xcodeproj
🔥 Watching files under /Users/mtriohin/Downloads/ios
🔥 Compiling /Users/mtriohin/Downloads/ios/AppName/Controllers/Unauthorized/Login/LoginViewController.swift
2021-09-22 22:00:21.026643+0300 AppName[32115:163596] [boringssl] boringssl_metrics_log_metric_block_invoke(144) Failed to log metrics
🔥 Loading .dylib ...
objc[32115]: Class _TtC7AppName19LoginViewController is implemented in both /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Bundle/Application/FA878AFF-D971-4C48-AF7C-0CBE8E26374D/AppName.app/AppName (0x10ef64708) and /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Data/Application/4BFB4C79-1D66-4C21-9B23-2CA08155BAFF/tmp/eval101.dylib (0x112feb878). One of the two will be used. Which one is undefined.
🔥 Loaded .dylib - Ignore any duplicate class warning ⬆️
🔥 Injected class 'AppName.LoginViewController' (0,9)
🔥 Interposed 4 function references.

🔥 Compiling /Users/mtriohin/Downloads/ios/AppName/Controllers/Unauthorized/Login/LoginPasswordViewController.swift
🔥 Loading .dylib ...
objc[32115]: Class _TtC7AppName10MAIBSpacer is implemented in both /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Bundle/Application/FA878AFF-D971-4C48-AF7C-0CBE8E26374D/AppName.app/AppName (0x10ef28b58) and /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Data/Application/4BFB4C79-1D66-4C21-9B23-2CA08155BAFF/tmp/eval102.dylib (0x112f76350). One of the two will be used. Which one is undefined.
🔥 Loaded .dylib - Ignore any duplicate class warning ⬆️
🔥 Injected class 'AppName.MAIBSpacer' (0,3)
🔥 Interposed 1 function references.

hot_reloading.log

johnno1962 commented 3 years ago

Logging was garbled in that version can you try again with commit b9657022a2497b0a5b14da5a376d002807a3424d?

cpd commented 3 years ago

Logging was garbled in that version

I used branch xcode-13 when adding package, maybe Xcode didn't fetched last commit, Ill try now via commit

johnno1962 commented 3 years ago

My original commit was logging the information I need to stdout while another thread was writing to stderr.

cpd commented 3 years ago
🔥 HotReloading connected /Users/mtriohin/Downloads/mb-ios/AppName.xcodeproj
🔥 Watching files under /Users/mtriohin/Downloads/mb-ios

🔥 Compiling /Users/mtriohin/Downloads/mb-ios/AppName/Controllers/Unauthorized/Login/LoginViewController.swift
🔥 Loading .dylib ...
objc[39117]: Class _TtC7AppName21CreditBannerImageView is implemented in both /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Bundle/Application/1A4CBC9A-3D7A-4664-8CE1-26782575AA44/AppName.app/AppName (0x110d4e2e0) and /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Data/Application/550EBA07-6FE7-4A83-AD18-C61F6DB0C688/tmp/eval101.dylib (0x114de4528). One of the two will be used. Which one is undefined.
🔥 Loaded .dylib - Ignore any duplicate class warning ⬆️
🔥 Injected class 'AppName.CreditBannerImageView' (0,6)
🔥 Interposed 2 function references.

🔥 Compiling /Users/mtriohin/Downloads/mb-ios/AppName/Controllers/Unauthorized/Login/LoginPasswordViewController.swift
🔥 Loading .dylib ...
objc[39117]: Class _TtC7AppName30CurrentAccountStatementSection is implemented in both /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Bundle/Application/1A4CBC9A-3D7A-4664-8CE1-26782575AA44/AppName.app/AppName (0x110d5f370) and /Users/mtriohin/Library/Developer/CoreSimulator/Devices/87C172FE-F2EF-4627-8117-6A17A3CCE4CA/data/Containers/Data/Application/550EBA07-6FE7-4A83-AD18-C61F6DB0C688/tmp/eval102.dylib (0x114d734a8). One of the two will be used. Which one is undefined.
🔥 Loaded .dylib - Ignore any duplicate class warning ⬆️
🔥 Injected class 'AppName.CurrentAccountStatementSection' (3,0)
🔥 Interposed 3 function references.

hot_reloading.log

johnno1962 commented 3 years ago

Wow, this is super weird. Without doing another injection can you send the contents of this command please:

nm /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-annyxmexzvhmumaokzkhseynxkvx/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/LoginPasswordViewController.o
cpd commented 3 years ago
mtriohin@iMac-Mihail /tmp % nm /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-annyxmexzvhmumaokzkhseynxkvx/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/LoginPasswordViewController.o
                 U _$s10Foundation4DateVMa
                 U _$s10Foundation4DateVMn
0000000000000410 T _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvM
0000000000000450 t _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvM.resume.0
0000000000001838 S _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvMTq
0000000000000360 T _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvg
0000000000001828 S _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvgTq
00000000000002a0 T _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvpACTK
0000000000000300 T _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvpACTk
00000000000018c0 S _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvpMV
0000000000001628 D _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvpWvd
0000000000000290 T _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvpfi
00000000000003b0 T _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvs
0000000000001830 S _$s7AppName30CurrentAccountStatementSectionC10isExpandedSbvsTq
0000000000000220 T _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvM
0000000000000260 t _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvM.resume.0
0000000000001820 S _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvMTq
0000000000000150 T _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvg
0000000000001810 S _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvgTq
0000000000000080 T _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvpACTK
00000000000000e0 T _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvpACTk
00000000000018b0 S _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvpMV
0000000000001620 D _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvpWvd
0000000000000050 T _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvpfi
00000000000001b0 T _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvs
0000000000001818 S _$s7AppName30CurrentAccountStatementSectionC10operationsSayAA0bcD9OperationCGvsTq
0000000000000700 T _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvM
0000000000000730 t _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvM.resume.0
0000000000001850 S _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvMTq
0000000000000560 T _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvg
0000000000001840 S _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvgTq
0000000000000480 T _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvpACTK
00000000000004e0 T _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvpACTk
00000000000018d0 S _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvpMV
0000000000000680 T _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvs
0000000000001848 S _$s7AppName30CurrentAccountStatementSectionC13cashFlowItemsSayAA0bcd4CashG4ItemVGvsTq
0000000000000ee0 T _$s7AppName30CurrentAccountStatementSectionC17getCashFlowValues33_8E024D9BBFE099A64C5DD13F2097DE0ALL10operationsSd6income_Sd7outcometSayAA0bcD9OperationCG_tF
0000000000001870 s _$s7AppName30CurrentAccountStatementSectionC17getCashFlowValues33_8E024D9BBFE099A64C5DD13F2097DE0ALL10operationsSd6income_Sd7outcometSayAA0bcD9OperationCG_tFTq
0000000000001630 d _$s7AppName30CurrentAccountStatementSectionC31$__lazy_storage_$_cashFlowItems33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcd4CashI4ItemVGSgvpWvd
0000000000000790 T _$s7AppName30CurrentAccountStatementSectionC31$__lazy_storage_$_cashFlowItems33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcd4CashI4ItemVGSgvpfi
0000000000000000 T _$s7AppName30CurrentAccountStatementSectionC4date10Foundation4DateVvg
0000000000001790 S _$s7AppName30CurrentAccountStatementSectionC4date10Foundation4DateVvpMV
0000000000001618 D _$s7AppName30CurrentAccountStatementSectionC4date10Foundation4DateVvpWvd
00000000000007b0 T _$s7AppName30CurrentAccountStatementSectionC4date10operations10isExpandedAC10Foundation4DateV_SayAA0bcD9OperationCGSbtcfC
0000000000001858 S _$s7AppName30CurrentAccountStatementSectionC4date10operations10isExpandedAC10Foundation4DateV_SayAA0bcD9OperationCGSbtcfCTq
0000000000000800 T _$s7AppName30CurrentAccountStatementSectionC4date10operations10isExpandedAC10Foundation4DateV_SayAA0bcD9OperationCGSbtcfc
00000000000007a0 T _$s7AppName30CurrentAccountStatementSectionC4date10operations10isExpandedAC10Foundation4DateV_SayAA0bcD9OperationCGSbtcfcfA1_
0000000000000a10 T _$s7AppName30CurrentAccountStatementSectionC5titleSSvg
0000000000001860 S _$s7AppName30CurrentAccountStatementSectionC5titleSSvgTq
0000000000001790 S _$s7AppName30CurrentAccountStatementSectionC5titleSSvpMV
0000000000000ac0 T _$s7AppName30CurrentAccountStatementSectionC9getTotals33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcD12CashFlowItemVGyF
0000000000000d10 t _$s7AppName30CurrentAccountStatementSectionC9getTotals33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcD12CashFlowItemVGyFAGSgSS_SayAA0bcD9OperationCGtXEfU0_
0000000000001500 t _$s7AppName30CurrentAccountStatementSectionC9getTotals33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcD12CashFlowItemVGyFAGSgSS_SayAA0bcD9OperationCGtXEfU0_TA
0000000000000c70 t _$s7AppName30CurrentAccountStatementSectionC9getTotals33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcD12CashFlowItemVGyFSSAA0bcD9OperationCXEfU_
0000000000001868 s _$s7AppName30CurrentAccountStatementSectionC9getTotals33_8E024D9BBFE099A64C5DD13F2097DE0ALLSayAA0bcD12CashFlowItemVGyFTq
0000000000001c00 s _$s7AppName30CurrentAccountStatementSectionCMF
00000000000011a0 t _$s7AppName30CurrentAccountStatementSectionCMU
00000000000011b0 T _$s7AppName30CurrentAccountStatementSectionCMa
0000000000001660 d _$s7AppName30CurrentAccountStatementSectionCMf
000000000000b448 b _$s7AppName30CurrentAccountStatementSectionCMl
0000000000001638 D _$s7AppName30CurrentAccountStatementSectionCMm
00000000000017d0 S _$s7AppName30CurrentAccountStatementSectionCMn
0000000000001200 t _$s7AppName30CurrentAccountStatementSectionCMr
0000000000001670 D _$s7AppName30CurrentAccountStatementSectionCN
0000000000001160 T _$s7AppName30CurrentAccountStatementSectionCfD
00000000000010a0 T _$s7AppName30CurrentAccountStatementSectionCfd
                 U _$s7AppName32CurrentAccountStatementOperationCMa
                 U _$s7AppName32CurrentAccountStatementOperationCMn
0000000000000cb0 T _$s7AppName32CurrentAccountStatementOperationCSSs5Error_pIggozo_ACSSsAD_pIegnrzo_TR
0000000000001490 t _$s7AppName32CurrentAccountStatementOperationCSSs5Error_pIggozo_ACSSsAD_pIegnrzo_TRTA
                 U _$s7AppName35CurrentAccountStatementCashFlowItemVMn
                 U _$s7AppName35CurrentAccountStatementCashFlowItemVN
                 U _$s7AppName35CurrentAccountStatementCashFlowItemV_7outcome_ACSd_SdSStcfC
                 U _$s7AppName5UtilsC28formTransactionsSectionTitleySS10Foundation4DateVFZ
                 U _$s7AppName5UtilsCMa
000000000000179c S _$s7AppNameMXM
                 U _$sBbWV
                 U _$sBoWV
                 U _$sSD8grouping2bySDyxSay7ElementQyd__GGqd__n_xADKXEtKcAERs_STRd__lufC
                 U _$sSDMa
0000000000001770 D _$sSDySSSay7AppName32CurrentAccountStatementOperationCGGMD
0000000000001780 D _$sSDySSSay7AppName32CurrentAccountStatementOperationCGGML
0000000000001580 T _$sSDySSSay7AppName32CurrentAccountStatementOperationCGGMa
0000000000001778 D _$sSDySSSay7AppName32CurrentAccountStatementOperationCGGSDyxq_GSTsWL
0000000000001530 T _$sSDySSSay7AppName32CurrentAccountStatementOperationCGGSDyxq_GSTsWl
                 U _$sSDyxq_GSTsMc
                 U _$sSSN
                 U _$sSSSHsWP
0000000000000e50 T _$sSSSay7AppName32CurrentAccountStatementOperationCGAA0bcD12CashFlowItemVSgs5Error_pIgggozo_SS3key_AD5valuetAGsAH_pIegnrzo_TR
0000000000001510 t _$sSSSay7AppName32CurrentAccountStatementOperationCGAA0bcD12CashFlowItemVSgs5Error_pIgggozo_SS3key_AD5valuetAGsAH_pIegnrzo_TRTA
                 U _$sSTsE10compactMapySayqd__Gqd__Sg7ElementQzKXEKlF
                 U _$sSaMa
0000000000001748 D _$sSay7AppName32CurrentAccountStatementOperationCGMD
0000000000001758 D _$sSay7AppName32CurrentAccountStatementOperationCGML
0000000000001390 T _$sSay7AppName32CurrentAccountStatementOperationCGMa
0000000000001768 D _$sSay7AppName32CurrentAccountStatementOperationCGSayxGSTsWL
00000000000014b0 T _$sSay7AppName32CurrentAccountStatementOperationCGSayxGSTsWl
0000000000001750 D _$sSay7AppName32CurrentAccountStatementOperationCGSayxGSlsWL
0000000000001340 T _$sSay7AppName32CurrentAccountStatementOperationCGSayxGSlsWl
0000000000001460 T _$sSay7AppName32CurrentAccountStatementOperationCGWOc
0000000000001120 T _$sSay7AppName32CurrentAccountStatementOperationCGWOh
0000000000001140 T _$sSay7AppName35CurrentAccountStatementCashFlowItemVGSgWOh
0000000000001430 T _$sSay7AppName35CurrentAccountStatementCashFlowItemVGWOc
0000000000000c50 T _$sSay7AppName35CurrentAccountStatementCashFlowItemVGWOh
                 U _$sSayxGSTsMc
                 U _$sSayxGSlsMc
                 U _$sSdN
                 U _$sSdSLsWP
                 U _$sSds13SignedNumericsWP
                 U _$sSlss16IndexingIteratorVyxG0B0RtzrlE04makeB0ACyF
                 U _$ss16IndexingIteratorV4next7ElementQzSgyF
                 U _$ss16IndexingIteratorVMn
0000000000001760 D _$ss16IndexingIteratorVySay7AppName32CurrentAccountStatementOperationCGGMD
0000000000001410 T _$ss16IndexingIteratorVySay7AppName32CurrentAccountStatementOperationCGGWOh
                 U _$ss27_allocateUninitializedArrayySayxG_BptBwlF
                 U _$ss3absyxxSLRzs13SignedNumericRzlF
                 U _OBJC_CLASS_$__TtCs12_SwiftObject
                 U _OBJC_METACLASS_$__TtCs12_SwiftObject
0000000000001b20 s __DATA__TtC7AppName30CurrentAccountStatementSection
0000000000001a98 s __IVARS__TtC7AppName30CurrentAccountStatementSection
0000000000001a50 s __METACLASS_DATA__TtC7AppName30CurrentAccountStatementSection
00000000000012d0 T ___swift_instantiateConcreteTypeFromMangledName
00000000000018a8 S ___swift_reflection_version
                 U __objc_empty_cache
                 U __swift_FORCE_LOAD_$_swiftAVFoundation
0000000000001968 S __swift_FORCE_LOAD_$_swiftAVFoundation_$_AppName
                 U __swift_FORCE_LOAD_$_swiftAccelerate
0000000000001980 S __swift_FORCE_LOAD_$_swiftAccelerate_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCompatibility50
00000000000019c0 S __swift_FORCE_LOAD_$_swiftCompatibility50_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCompatibility51
00000000000019c8 S __swift_FORCE_LOAD_$_swiftCompatibility51_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCompatibilityDynamicReplacements
00000000000019d0 S __swift_FORCE_LOAD_$_swiftCompatibilityDynamicReplacements_$_AppName
                 U __swift_FORCE_LOAD_$_swiftContacts
00000000000019a8 S __swift_FORCE_LOAD_$_swiftContacts_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreAudio
0000000000001960 S __swift_FORCE_LOAD_$_swiftCoreAudio_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreData
0000000000001950 S __swift_FORCE_LOAD_$_swiftCoreData_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreFoundation
0000000000001908 S __swift_FORCE_LOAD_$_swiftCoreFoundation_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreGraphics
0000000000001918 S __swift_FORCE_LOAD_$_swiftCoreGraphics_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreImage
0000000000001928 S __swift_FORCE_LOAD_$_swiftCoreImage_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreLocation
0000000000001998 S __swift_FORCE_LOAD_$_swiftCoreLocation_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreMIDI
0000000000001978 S __swift_FORCE_LOAD_$_swiftCoreMIDI_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreML
0000000000001990 S __swift_FORCE_LOAD_$_swiftCoreML_$_AppName
                 U __swift_FORCE_LOAD_$_swiftCoreMedia
0000000000001958 S __swift_FORCE_LOAD_$_swiftCoreMedia_$_AppName
                 U __swift_FORCE_LOAD_$_swiftDarwin
00000000000018e8 S __swift_FORCE_LOAD_$_swiftDarwin_$_AppName
                 U __swift_FORCE_LOAD_$_swiftDataDetection
0000000000001948 S __swift_FORCE_LOAD_$_swiftDataDetection_$_AppName
                 U __swift_FORCE_LOAD_$_swiftDispatch
0000000000001910 S __swift_FORCE_LOAD_$_swiftDispatch_$_AppName
                 U __swift_FORCE_LOAD_$_swiftFileProvider
0000000000001940 S __swift_FORCE_LOAD_$_swiftFileProvider_$_AppName
                 U __swift_FORCE_LOAD_$_swiftFoundation
0000000000001900 S __swift_FORCE_LOAD_$_swiftFoundation_$_AppName
                 U __swift_FORCE_LOAD_$_swiftMapKit
00000000000019a0 S __swift_FORCE_LOAD_$_swiftMapKit_$_AppName
                 U __swift_FORCE_LOAD_$_swiftMetal
0000000000001930 S __swift_FORCE_LOAD_$_swiftMetal_$_AppName
                 U __swift_FORCE_LOAD_$_swiftNetwork
00000000000019b8 S __swift_FORCE_LOAD_$_swiftNetwork_$_AppName
                 U __swift_FORCE_LOAD_$_swiftObjectiveC
00000000000018e0 S __swift_FORCE_LOAD_$_swiftObjectiveC_$_AppName
                 U __swift_FORCE_LOAD_$_swiftQuartzCore
0000000000001938 S __swift_FORCE_LOAD_$_swiftQuartzCore_$_AppName
                 U __swift_FORCE_LOAD_$_swiftUIKit
0000000000001920 S __swift_FORCE_LOAD_$_swiftUIKit_$_AppName
                 U __swift_FORCE_LOAD_$_swiftUniformTypeIdentifiers
00000000000018f8 S __swift_FORCE_LOAD_$_swiftUniformTypeIdentifiers_$_AppName
                 U __swift_FORCE_LOAD_$_swiftVision
0000000000001988 S __swift_FORCE_LOAD_$_swiftVision_$_AppName
                 U __swift_FORCE_LOAD_$_swiftWebKit
00000000000019b0 S __swift_FORCE_LOAD_$_swiftWebKit_$_AppName
                 U __swift_FORCE_LOAD_$_swiftos
00000000000018f0 S __swift_FORCE_LOAD_$_swiftos_$_AppName
                 U __swift_FORCE_LOAD_$_swiftsimd
0000000000001970 S __swift_FORCE_LOAD_$_swiftsimd_$_AppName
                 U _memset
0000000000001c58 s _objc_classes
                 U _swift_allocObject
                 U _swift_beginAccess
                 U _swift_bridgeObjectRelease
                 U _swift_bridgeObjectRetain
                 U _swift_deallocClassInstance
                 U _swift_endAccess
                 U _swift_getSingletonMetadata
                 U _swift_getTypeByMangledNameInContext
                 U _swift_getWitnessTable
                 U _swift_release
                 U _swift_retain
                 U _swift_updateClassMetadata2
0000000000001ba8 S _symbolic SDySSSay_____GG 7AppName32CurrentAccountStatementOperationC
0000000000001b7c S _symbolic Say_____G 7AppName32CurrentAccountStatementOperationC
0000000000001b8a S _symbolic Say_____GSg 7AppName35CurrentAccountStatementCashFlowItemV
0000000000001b86 S _symbolic Sb
0000000000001b76 S _symbolic _____ 10Foundation4DateV
0000000000001b70 S _symbolic _____ 7AppName30CurrentAccountStatementSectionC
0000000000001b96 S _symbolic _____ySay_____GG s16IndexingIteratorV 7AppName32CurrentAccountStatementOperationC
0000000000001bc5 s l___unnamed_10
0000000000001bd0 s l___unnamed_11
0000000000001be0 s l___unnamed_12
0000000000001794 s l___unnamed_7
00000000000017b0 s l___unnamed_8
0000000000001bc0 s l___unnamed_9
0000000000001610 t l_coro.devirt.trigger
0000000000001c44 s l_llvm.swift_module_hash
0000000000001878 s l_type_layout_1_1_fe_pod
0000000000001890 s l_type_layout_8_8_7ffffffe_bt
0000000000001c40 s l_type_metadata_table
johnno1962 commented 3 years ago

Oh dear, seems like Xcode/Swift is putting the wrong compilation output into the wrong object file name. I think all I can do for now is include all the object files for each compile command in the injection dylib which is going to look a bit weird.

johnno1962 commented 3 years ago

RIght, I've pushed a workaround b17ad579a794959a34e94fc6e27e854ca6502086 which should get you up and running for now though it will inject random groups of classes at a time. Let me know if it works. I'll look at your logs some more but looks like I'll have to file a RADAR on the Swift compiler.

cpd commented 3 years ago

Looks like nothing changed, same output and wrong file is injected 🤔

image
johnno1962 commented 3 years ago

Can you send /tmp/hot_reloading.log again please?

cpd commented 3 years ago

hot_reloading.log

johnno1962 commented 3 years ago

Sorry, my bad there, de-glitching a tricky regular expression. Can you try d5c86ec7b8ba2730a9e0344a1530235a9234c349?

cpd commented 3 years ago

Can you try d5c86ec7b8ba2730a9e0344a1530235a9234c349?

It works but as previous versions this one make some build artefacts which results in errors while trying to build project again, need to do a Clean + Indexing + new Build, that takes like an eternity :(

cpd commented 3 years ago

Pretty weird that there's no other people complaining about this, maybe they are using Xcode 12 or maybe my project has some strange settings

johnno1962 commented 3 years ago

It's Xcode 13 + the scale of your project that is specific to you. Xcode 13 groups files together as it compiles them and it seems to mix the object files up which is causing this problem for Injection. Is a shame that you didn't report this earlier as I could have reported it to Apple. How do you mean artefacts? Related to duplicate symbols? So I can look at whether we'll be able to find a better solution would you be able to send though this file for your project: /Users/mtriohin/Library/Developer/Xcode/DerivedData/AppName-fddzyjcnrjkzrrbybqcaapxodoqy/Build/Intermediates.noindex/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/AppName-OutputFileMap.json

cpd commented 3 years ago

It's Xcode 13 + the scale of your project that is specific to you

It's not that big, 618 swift files without pods, compared to Telegram or other big project this is Hello World example

Is a shame that you didn't report this earlier as I could have reported it to Apple

How I can know if that's not something related to beta mac os / Xcode / Injection / Project setup? p.s Last year reported some issues including one with Swift compiler but never got any response

How do you mean artefacts?

Untitled 2

So I can look at whether we'll be able to find a better solution would you be able to send though this file for your project:

Sent it to email (output from clean build) if need output after wrong injection - let me know

johnno1962 commented 3 years ago

Thanks for sending the AppName-OutputFileMap.json file though. I had a look and unfortunately it doesn't help us if the compiler is going to put completely the wrong contents in each object file. I'll have to look at this tomorrow but it's difficult without having a 618 file project laying around. Other users are going to come across this though eventually so it is a priority.

johnno1962 commented 3 years ago

BTW. I really appreciate your long term sponsorship of this project.

johnno1962 commented 3 years ago

I'm reasonably sure I'll be able to find a solution to this by performing some regex surgery on the compilation command to convert into only compiling one file at a time. Util tomorrow...

johnno1962 commented 3 years ago

Good Morning (almost) @cpd, I've pushed a new commit addressing this issue with Xcode 13 9ac9729d34eb7d9831e1657eca93ec856dc8e101 if you want to give it a try. The new code makes sure there is only ever one -primary-file when recompiling to inject so there is only ever one object file and injection uses it's own object file path which may address the unusual artefacts you've been seeing. It is the product of rebuilding the compile command using regular expressions which will take time to get right given the permutations of file/project/product name escaping and international character sets people use. I'll file a radar with Apple but this will have to be the solution for now.

cpd commented 3 years ago

Hi, wow, 9ac9729d34eb7d9831e1657eca93ec856dc8e101 seems to work as expected. Thanks!

image

johnno1962 commented 3 years ago

Thanks, that's good to know. I've filed a radar with Apple (FB9648402) and we'll see what comes of it but we have a fix for now. Thank you very much for reporting this and testing out the various versions. You can switch back to HotReloading main branch, released version 2.1.4 now. I've prepared a new 3.1.0 release of the app.

johnno1962 commented 3 years ago

Hi @cpd, I've made another release to the InjectionIII app https://github.com/johnno1962/InjectionIII/releases/tag/3.1.3 after a lot more research into how to deal with Xcode 13. If you're still using HotReloading, the new version is 2.1.8.

cpd commented 3 years ago

Hi, thanks for letting me know, all releases from 3.1.0 to 3.1.3 looks good to me, last releases seems more stable than older versions + Xcode 12 which caused build artefacts time to time that required Clean + Rebuild although need more time for testing.

However I observed that didSet on properties is not injected (i'm not quite sure if that worked in older versions), moving code from didSet to a method doesn't help because method for some reason is not injected too

    var name: String? {
        didSet {
            updateName()
        }
    }

    func updateName() {
    if let name = name, name.isNotEmpty {
        nameLabel.isHidden = false

        nameLabel.attributedText =
        "lockscreen_hello".localized.with(.blackCoral, .preferredFont(forTextStyle: .body)) +
        name.with(.blueGrey, .preferredFont(forTextStyle: .title3).bold())
    } else {
        nameLabel.isHidden = true
    }
}
johnno1962 commented 3 years ago

Thanks for checking it out. Injection only "swizzles" functions not property getters unless they are for an Opaque type (for SwiftUI). It could inject getters and setters but I've never had the courage to enable that until now. Not sure about didSet and co. The method not injecting doesn't sound right though. If that were injected it should pick up the getters/setters if they are in the same object file. You have the "-Xlinker" "-interposable" flags set? Is this a final or non-final class?

cpd commented 3 years ago

sorry for misleading, checked it again, method is injected correctly but didSet still calls old implementation, that's expected behaviour?

You have the "-Xlinker" "-interposable" flags set?

Yes

Is this a final or non-final class?

non final

johnno1962 commented 3 years ago

Hmm. Probably because the getter being used is still that of the old implementation as it is dispatched through the vtable of the original class which is not being patched at the moment. This is possible to do. Would you say this was important?

johnno1962 commented 3 years ago

Sounds like I should enable injection of all getters at the very least and perhaps setters.

cpd commented 3 years ago

Would you say this was important?

Not really, current functionality is ok for me, I was just wondering if it's a bug or expected behaviour

If that's possible and you have the willing to implement this it would be great but it's not high priority, at least for me.

johnno1962 commented 3 years ago

OK, If you could switch back to HotReloading, I've pushed 955eab81f5bde8cb7e7eaf9a9e3254736fd29956 which should enable the patching of getters and setters in the vtable for classes. Do you have the time to give it a try?

cpd commented 3 years ago

Do you have the time to give it a try?

Yep, already tried, looks strong, couldn't broke it :D