Comments (9)
PS: the same code works well on simulator.
from hotreloading.
Hi, I'm afraid Objective-C and on-device injection is a bad combination due to insufficient information being provided by the compiler to simulate dynamic loading.
from hotreloading.
Oops, that is a bad news.
from hotreloading.
It's not all bad news, there are just arbitrary things you need to avoid, for example if you remove the message to super in viewDidLoad in the example you should find it works.
from hotreloading.
Em, I removed [super viewDidLoad];
but it not works, same error happened.
Even if it could work by remove the message to super, it's not a perfect resolution cause usually we need to call super indeed.
from hotreloading.
Injection on device is currently not "a perfect solution". The error you're seeing is Injection complaining about missing Swift specific information not provided by Objective-C in the object file. My criteria for "working" is updating and not crashing. It works quite well for prototyping SwiftUI but aside from that no guarantees.
from hotreloading.
Is it possible to fix the problem in other way, like Runtime? Method swizzle instead of re-compile.
from hotreloading.
Not really without replicating some fairly complex code from inside the dynamic linker (for which the source is available). The current state is pretty much a "best effort" that works better than I expected as Swift seldom depends on pointers in memory initialised with the value of external symbols. Swift generally does everything through "accessors" which are functions I can use a slightly modified version of "fishhook" to "bind".
from hotreloading.
Got it, thanks for your patience.
from hotreloading.
Related Issues (20)
- Problems using HotReloading as a Swift package HOT 4
- iOS device injection not working when running as a Mac app HOT 17
- Updates overlap in UI HOT 1
- class category injection failed on device HOT 7
- Some questions about the implementation. HOT 1
- Crasing in SwiftInjection HOT 25
- Is there anyway to re-compile a file only when cmd + s ? HOT 3
- cold start on device encounter watch dog HOT 13
- Hot reloading not changing my views HOT 6
- Does it support C functions 、variable in other files? HOT 7
- Will the DDHotKey affect the file watch ? HOT 6
- Cannot use HotReloading with Other debug configurations (ex. Dev, Test Configuration) HOT 12
- Xcode 15 beta link SwiftTrace failed HOT 8
- Hot reloading failing on real iOS device HOT 12
- Connection refused HOT 12
- Cannot reload on M1, getting an “eval101.dylib” can’t be opened because Apple cannot check it for malicious software error. HOT 21
- lopen() error: dlopen(/private/var/mobile/Containers/Data HOT 2
- Cannot reload on M1: Mac os Sonoma prevents InjectionIII from accessing data HOT 3
- Loading .dylib has failed, This is likely because Swift code being injected references a function using a default argument or a member with access control that is too restrictive or perhaps an XCTest that depends on code not normally linked into your application. Rebuilding and re-running your project (without a build clean) can resolve this. HOT 8
- Custom DerivedData folder breaks hot reloading HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hotreloading.