2
我想將較新版本的bundle加載到目標進程,但是這是不可能的,因爲已經加載了具有相同名稱的bundle。捆綁的更改CFBundleVersion
或CFBundleShortVersionString
不起作用。最簡單的方法是簡單地殺死目標進程並重新啓動它。但我認爲這不是一個最好的辦法。那麼還有另一種方法可以做到嗎?有沒有辦法在mach_inject之後卸載bundle
我想將較新版本的bundle加載到目標進程,但是這是不可能的,因爲已經加載了具有相同名稱的bundle。捆綁的更改CFBundleVersion
或CFBundleShortVersionString
不起作用。最簡單的方法是簡單地殺死目標進程並重新啓動它。但我認爲這不是一個最好的辦法。那麼還有另一種方法可以做到嗎?有沒有辦法在mach_inject之後卸載bundle
我正面臨與mach_inject相同的問題。沒有修改mach_inject,我看不到一個簡單的解決方案。
我的解決方案是創建兩個捆綁。考慮第一個bundle是真實插件的插件管理器。插件管理器非常簡單,希望永遠不需要升級,它會加載和卸載添加了清理代碼的原始包。
我正在使用Apple的NSBundle類來加載和卸載插件。在卸載之前,我會調用原始插件中的主要類來清理它。
卸載以目標C編寫的捆綁包是危險的。一般來說,這是真實的。