From ef699da5d5a07e18c64aa309d52830404298ab41 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Mon, 1 Apr 2024 15:38:23 +0200 Subject: [PATCH] Keypaths (#497) * Reusing KeyPaths (INJECTION_KEYPATHS) --- HotReloading | 2 +- InjectionIII.xcodeproj/project.pbxproj | 10 +++++++--- InjectionIII/Info.plist | 2 +- README.md | 8 ++++---- SwiftTrace | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/HotReloading b/HotReloading index be4a57fb..f7ca137a 160000 --- a/HotReloading +++ b/HotReloading @@ -1 +1 @@ -Subproject commit be4a57fbe283f5c16b6a5a5464ba6e56f1062dd8 +Subproject commit f7ca137af88ed6cbb536ec650d961aa1fc1193e0 diff --git a/InjectionIII.xcodeproj/project.pbxproj b/InjectionIII.xcodeproj/project.pbxproj index 801224e8..8a3bf325 100644 --- a/InjectionIII.xcodeproj/project.pbxproj +++ b/InjectionIII.xcodeproj/project.pbxproj @@ -20,7 +20,7 @@ BB1BA90B251DC54100044608 /* SwiftUISupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1BA90A251DC54100044608 /* SwiftUISupport.swift */; }; BB1C3246254BFAFD001EDFCC /* EasyPointer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1C3245254BFAFC001EDFCC /* EasyPointer.swift */; }; BB1EBC4D258DE2A0001F2AA4 /* fishhook.c in Sources */ = {isa = PBXBuildFile; fileRef = BB1EBC4C258DE29D001F2AA4 /* fishhook.c */; }; - BB1EBC4F258DE2AD001F2AA4 /* fishhook.h in Headers */ = {isa = PBXBuildFile; fileRef = BB1EBC4E258DE2AC001F2AA4 /* fishhook.h */; }; + BB1EBC4F258DE2AD001F2AA4 /* fishhook.h in Headers */ = {isa = PBXBuildFile; fileRef = BB1EBC4E258DE2AC001F2AA4 /* fishhook.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB1EBC50258EA273001F2AA4 /* fishhook.h in Resources */ = {isa = PBXBuildFile; fileRef = BB1EBC4E258DE2AC001F2AA4 /* fishhook.h */; }; BB34C3FD244FAAB400D520A9 /* RMWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB34C3FC244FAAB400D520A9 /* RMWindowController.xib */; }; BB34C3FF244FAD3C00D520A9 /* log.html in Resources */ = {isa = PBXBuildFile; fileRef = BB34C3FE244FAD3C00D520A9 /* log.html */; }; @@ -47,6 +47,7 @@ BB6C87FA2520D2C3005AFCFC /* xt_forwarding_trampoline_arm64.s in Sources */ = {isa = PBXBuildFile; fileRef = BB6C87F72520D2C3005AFCFC /* xt_forwarding_trampoline_arm64.s */; }; BB6C87FB2520D2C3005AFCFC /* xt_forwarding_trampoline_x64.s in Sources */ = {isa = PBXBuildFile; fileRef = BB6C87F82520D2C3005AFCFC /* xt_forwarding_trampoline_x64.s */; }; BB6C881F2520D799005AFCFC /* SwiftTrace.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BB6C87C42520D0D1005AFCFC /* SwiftTrace.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BB746D602BACB62D0001685F /* SwiftKeyPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB746D5F2BACB62B0001685F /* SwiftKeyPath.swift */; }; BB79FC79245CC02200A4B4CB /* TimeLapseBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB79FC78245CC02200A4B4CB /* TimeLapseBuilder.swift */; }; BB7D7CAC2512F8F00069FE2C /* UpdateCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7D7CAB2512F8F00069FE2C /* UpdateCheck.swift */; }; BB80B3B526B573BE0055FAAE /* README_Chinese.md in Resources */ = {isa = PBXBuildFile; fileRef = BB80B3B426B573BE0055FAAE /* README_Chinese.md */; }; @@ -245,6 +246,7 @@ BB6C87F62520D2C3005AFCFC /* SwiftTrace.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = SwiftTrace.mm; path = SwiftTraceGuts/SwiftTrace.mm; sourceTree = ""; }; BB6C87F72520D2C3005AFCFC /* xt_forwarding_trampoline_arm64.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; name = xt_forwarding_trampoline_arm64.s; path = SwiftTraceGuts/xt_forwarding_trampoline_arm64.s; sourceTree = ""; }; BB6C87F82520D2C3005AFCFC /* xt_forwarding_trampoline_x64.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; name = xt_forwarding_trampoline_x64.s; path = SwiftTraceGuts/xt_forwarding_trampoline_x64.s; sourceTree = ""; }; + BB746D5F2BACB62B0001685F /* SwiftKeyPath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftKeyPath.swift; path = HotReloading/Sources/HotReloading/SwiftKeyPath.swift; sourceTree = SOURCE_ROOT; }; BB79FC78245CC02200A4B4CB /* TimeLapseBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TimeLapseBuilder.swift; path = Remote/Sources/RemoteMovie/TimeLapseBuilder.swift; sourceTree = SOURCE_ROOT; }; BB7D7CAB2512F8F00069FE2C /* UpdateCheck.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = UpdateCheck.swift; path = ../HotReloading/Sources/injectiond/UpdateCheck.swift; sourceTree = ""; }; BB80B3B426B573BE0055FAAE /* README_Chinese.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README_Chinese.md; sourceTree = ""; }; @@ -613,6 +615,7 @@ BB439B8A1FABA65D00B4F50B /* SwiftEval.swift */, BBC03BBF2625F27C005C1A06 /* UnhidingEval.swift */, BB9642A527E339BC00C61CB7 /* ObjcInjection.swift */, + BB746D5F2BACB62B0001685F /* SwiftKeyPath.swift */, BB109FAF1FAECD92008C5218 /* SwiftInjection.swift */, BBCB31C8281677C700081CB6 /* SwiftInterpose.swift */, BB9642A727E33C8F00C61CB7 /* DeviceInjection.swift */, @@ -1083,6 +1086,7 @@ BBCA02501FB107AF00E45F0F /* SwiftEval.swift in Sources */, BD35949E21A6C5DE0020EB94 /* Vaccine.swift in Sources */, BBCA02511FB107AF00E45F0F /* SwiftInjection.swift in Sources */, + BB746D602BACB62D0001685F /* SwiftKeyPath.swift in Sources */, BB9642A627E339BE00C61CB7 /* ObjcInjection.swift in Sources */, BBB64FE11FD575260020BE47 /* XprobeSwift.swift in Sources */, BB04337A28D31A350007577F /* StandaloneInjection.swift in Sources */, @@ -1477,7 +1481,7 @@ INFOPLIST_FILE = InjectionIII/Info.plist; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 4.8.3; + MARKETING_VERSION = 4.8.4; PRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.InjectionIII; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1501,7 +1505,7 @@ INFOPLIST_FILE = InjectionIII/Info.plist; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 4.8.3; + MARKETING_VERSION = 4.8.4; PRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.InjectionIII; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/InjectionIII/Info.plist b/InjectionIII/Info.plist index ddd77ce8..70dd7657 100644 --- a/InjectionIII/Info.plist +++ b/InjectionIII/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 7999 + 8040 LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion diff --git a/README.md b/README.md index 7c83df18..2b554f6f 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ always look like this: You can leave these modifications in your production code as, for a `Release` build they optimise out to a no-op. -### Injection on an iOS device +### Injection on an iOS, tvOS or visionOS device This can work but you will need to actually run one of the [github 4.8.0+ releases](https://github.com/johnno1962/InjectionIII/releases) @@ -140,7 +140,7 @@ of the InjectionIII.app, set a user default to opt-in and restart the app. $ defaults write com.johnholdsworth.InjectionIII deviceUnlock any ``` Then, instead of loading the injection bundles run this script in a "Build Phase": -(You may also need to turn off the project build setting "User Script Sandboxing") +(You will also need to turn off the project build setting "User Script Sandboxing") ``` RESOURCES=/Applications/InjectionIII.app/Contents/Resources @@ -173,7 +173,7 @@ It works but you need to temporarily turn off the "app sandbox" and "library validation" under the "hardened runtime" during development so it can dynamically load code. In order to avoid codesigning problems, use the new `copy_bundle.sh` script as detailed in the instructions for -injection on an iOS device above. +injection on real devices above. ### How it works @@ -298,4 +298,4 @@ for the code to be evaluated using injection under an MIT license. The fabulous app icon is thanks to Katya of [pixel-mixer.com](http://pixel-mixer.com/). -$Date: 2024/03/07 $ +$Date: 2024/03/26 $ diff --git a/SwiftTrace b/SwiftTrace index bcf56700..c5eadbfb 160000 --- a/SwiftTrace +++ b/SwiftTrace @@ -1 +1 @@ -Subproject commit bcf567003e881d12c69ec1c40a5b3d7c970dcc86 +Subproject commit c5eadbfb51a936a095ad913a6187740377ec67e4