Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apple Silicon support #54

Closed
poetaman opened this issue Feb 12, 2021 · 25 comments
Closed

Apple Silicon support #54

poetaman opened this issue Feb 12, 2021 · 25 comments

Comments

@poetaman
Copy link

Please add build instructions for apple silicon support, and/or make the brew cask fluor a universal binary.

As a side note, your brew command line syntax has changed, so please update your README document with newer flavor: brew install --cask fluor

@Muzosh
Copy link

Muzosh commented Jul 26, 2021

Any update on this?

@ruurd
Copy link

ruurd commented Oct 18, 2021

want!

@arjunahmtp
Copy link

Awaiting for this

@ruurd
Copy link

ruurd commented Dec 25, 2021

Already done as far as I know

@arjunahmtp
Copy link

I meant the arm app which can run natively on M1 macs

@ruurd
Copy link

ruurd commented Dec 26, 2021

Duh. I'm a cross-eyed moron. No. Not yet done.

@gennaios
Copy link

gennaios commented Jan 1, 2022

I have built it Apple Silicon. It works though crashes when going to Preferences. Maybe not everything is included to properly build. Errors begin with:

[Nib Loading] Unknown class SUUpdater in Interface Builder file
...
[Nib Loading] Could not connect action, target class NSObject does not respond to -checkForUpdates:
Fluor[95061:8345053] [General] An uncaught exception was raised
Fluor[95061:8345053] [General] [<NSObject 0x106fd7c10> valueForUndefinedKey:]: this class is not key value coding-compliant for the key automaticallyChecksForUpdates.

@CodeMason
Copy link

That looks like it's the sparkle framework causing problems.

@gennaios
Copy link

gennaios commented Jan 3, 2022

Yes. Haven’t tried to remove it. Maybe that will work. Or maybe somewhere there is a flag to disable and not include. Or there could be one added or it’s addition and use could be checked at runtime so one can build from repo.

@srgsf
Copy link

srgsf commented Feb 10, 2022

I have the same result as @gennaios
my exception on go to preferences:
error 19:10:43.012401+0300 Fluor This coder is expecting the replaced object 0x11e9c2600 to be returned from NSClassSwapper.initWithCoder instead of <SUUpdater: 0x118b4bb00>
Please let me know if more details needed. (But I'm total 0 in swift development and installed Xcode just to build Fluor)

@emadpres
Copy link

No news on this thread?

@ruurd
Copy link

ruurd commented May 28, 2022

I've tried forking and seeing for myself. It looks as if it is working and indeed I can confirm that opening Preferences kills it. Pity.

@gingerbeardman
Copy link

gingerbeardman commented Jun 12, 2022

Given that I was previously using the app and have no need to look at Preferences I am using my self-build Universal version on an M1 CPU.

You could also edit the preferences manually at ~/Library/Preferences/com.pyrolyse.Fluor.plist

Screen shot 2022-06-12 at 22 33 06

@kvn1351
Copy link

kvn1351 commented Jun 27, 2022

I find it pretty sad how some in this thread have built it yet have failed to pass the info along to less Xcode/Tech-savvy people. In fact, in the very first post of this thread, they ask how to build it.

Anyways, as the crash log suggests, the issue lies with the sparkle framework. The easiest way to fix it, since the updater won't be used anyways, is to just remove the SUUpdater from the storyboard. That's all.

Build instructions:

  1. Download the Source code for 2.5.0 from https://github.com/Pyroh/Fluor/releases/tag/2.5.0
  2. Install Xcode from the Appstore
  3. Open it and go to preferences and add your apple account
  4. Go to File>Open and select the source folder
  5. Click on Fluor in the upper left corner
  6. Under General —> Frameworks, Libraries...: remove the sparkle.framework
  7. Under Signing & Capabilities —> Team: select your account
  8. On the left pane, expand Fluor/Fluor/XIBs/Preferences.storyboard. Press on it
  9. Select the updater view from within the storyboard and press the delete key
  10. Press the Build and run button (play) on the top of the left sidebar
  11. Open Finder and press Shift+CMD+G. Enter ~/Library/Developer/Xcode/DerivedData/
  12. You will find the .app under ~/Library/Developer/Xcode/DerivedData/{app name}/Build/Products/Deployment/

@gingerbeardman
Copy link

gingerbeardman commented Jun 29, 2022

I didn't need to do half of those steps, which shows why providing a guide is not an exact science.

Glad you got it built!

@srgsf
Copy link

srgsf commented Jun 29, 2022

I find it pretty sad how some in this thread have built it yet have failed to pass the info along to less Xcode/Tech-savvy people. In fact, in the very first post of this thread, they ask how to build it.

Anyways, as the crash log suggests, the issue lies with the sparkle framework. The easiest way to fix it, since the updater won't be used anyways, is to just remove the SUUpdater from the storyboard. That's all.

Build instructions:

  1. Download the Source code for 2.5.0 from https://github.com/Pyroh/Fluor/releases/tag/2.5.0
  2. Install Xcode from the Appstore
  3. Open it and go to preferences and add your apple account
  4. Go to File>Open and select the source folder
  5. Click on Fluor in the upper left corner
  6. Under General —> Frameworks, Libraries...: remove the sparkle.framework
  7. Under Signing & Capabilities —> Team: select your account
  8. On the left pane, expand Fluor/Fluor/XIBs/Preferences.storyboard. Press on it
  9. Select the updater view from within the storyboard and press the delete key
  10. Press the Build and run button (play) on the top of the left sidebar
  11. Open Finder and press Shift+CMD+G. Enter ~/Library/Developer/Xcode/DerivedData/
  12. You will find the .app under ~/Library/Developer/Xcode/DerivedData/{app name}/Build/Products/Deployment/

Thank you!
There is one more issue: application crashes when you press Preferences -> Manage rules... button.
Could you please find out what's wrong?

@kvn1351
Copy link

kvn1351 commented Jun 29, 2022

Thank you! There is one more issue: application crashes when you press Preferences -> Manage rules... button. Could you please find out what's wrong?

It's a very strange error for me considering that it runs perfectly fine when compiled for Intel. To my limited knowledge about Apple development, this shouldn't be the case.

Very hard to say for someone who has never developed with Swift :/

@gingerbeardman
Copy link

gingerbeardman commented Jun 30, 2022

The error is:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

at:

return NSStoryboard(name: storyboardName, bundle: bundle).instantiateInitialController() as! Self

@kvn1351
Copy link

kvn1351 commented Jun 30, 2022

The error is:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

at:

return NSStoryboard(name: storyboardName, bundle: bundle).instantiateInitialController() as! Self

It's not the source of the problem though.

@srgsf
Copy link

srgsf commented Jul 1, 2022

I guess we need a Swift developer here.

@kvn1351
Copy link

kvn1351 commented Jul 2, 2022

The thing is, I don't understand why it would behave differently when compiled for Apple Silicon. I haven't found anything similar after a fair bit of research.

It seems to me that the error is connected with this:

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

So it's possibly the observer object it destroyed/dealocated before it should be. But again, it makes no sense to me that this works fine when compiled for Intel.

Someone with an older Xcode version might have a go at compiling it. Perhaps it really is a weird bug.

Ps: If the override I've linked to above is commented out. It won't crash anymore.

@srgsf
Copy link

srgsf commented Jul 2, 2022

Yes it doesn't crash,
but it also doesn't show anything in edit rules window.

@kvn1351
Copy link

kvn1351 commented Jul 2, 2022

My point being that this Observable is the source of the issue. Sorry for not being clear enough.

@Pyroh
Copy link
Owner

Pyroh commented Jul 6, 2022

I released an update with Apple Silicon support.
You need macOS 11.0 mini to run it and it's totally disconnect from the old update system. Plus it addresses all the issues you mentioned.

If someone could update the homebrew cask I'd be more than happy 😃

@Pyroh Pyroh closed this as completed Jul 6, 2022
@gingerbeardman
Copy link

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests