IMPORTANT: RapidWeaver 8.7.1 Universal Developer Build

Thanks for this, we’ll look into it and get it fixed up!

I really wish Apple would hurry up and ship the new M1X based Macs…

Cheers!

2 Likes

@dan maybe you add in your 8.8 documentation that you still need Rosetta in order to start on M1. Or have you been able to fix that?

@instacks RapidWeaver 8.8 is now available as a Universal build: RapidWeaver 8.8 is now available as a universal build

The Knowledge base link in that thread also covers how to run it natively on M1 or with Rosetta if your plugin isn’t supported.

Thanks, I have seen this already.

I am referring to the issue documented above that I was not able to start RW8.7.1 until Rosetta 2 was installed, as Isaiah found out most probably because of the RW7Migration library.
As you’re not able to remove Rosetta 2 once installed, I am not able to retest this behaviour with RW8.8 any more.

Just want to keep your support queue small. Worth a read: https://www.macrumors.com/2021/03/02/rosetta-macos-11-3-strings/

I’m typing this on my new no-rosetta-installed M1 MacBook Air. I just finished the big migration assistant copy and have not yet installed Rosetta – which is insanely annoying because so many little utilities and things require it.

But I’m happy to report that RapidWeaver 8.8 is fully universal – and even with Stacks 4.2 installed – no Rosetta and works great.

2 Likes

Perfect :smiley:

And before I installed Rosetta I did one more RapidWeaver test. :smiling_imp:

I did a side by side comparison of RapidWeaver and Stacks loading @RapidBase’s actual moster-huge library. It’s an insane set of nearly every stack ever made. About 1800 parent-stacks, which translates to almost 8000 items in the Stacks library. On my poor old 2010 MacBook it takes over 30 seconds to load.

But it makes a very good test case. Starting up stacks reads in the plist of every item, decrypting when necessary. It’s a good use of single and multi-core performance with a lot of disk reads and memory use.

I launch RW from the command line opening the same library on the same file with the same prefs (thanks to migration assistant).

On the left is my new MacBook Air. Top of the line. 16GB of memory 8-cores with a 1TB drive. $1600

On the right is the hackintosh I built in 2018 for about $1100. The CPU is the only nice component. Everything else is just whatever was cheapest on amazon that day. No overclocking. No liquid cooling. No fancy LEDs.

It’s very very consistently 1.75x – the Hackintosh is 75% faster.

(sorry for the super huge gif)

Glad it’s all working on the M1, phew!

That’s an interesting comparison. I’m surprised the Hackintosh was that mush faster. But, hey Desktop machines do tend to beat laptops. That Hackintosh is exceptional value, you’re certainly getting your monies worth there!

I’m looking forward to the pro M1 machines :slight_smile: An M1X iMac would sure be nice.

1 Like

i think it’s only surprising because the older apple machines have been so slow and thermally limited for so long that the M1 didn’t have to do too much to seem amazing.

i honestly don’t mind that it’s slow. my favorite laptops are light and have a great battery – this machine does both exceptionally well.

and yes, i’m really looking forward to what apple can do with more memory, more space, and more thermal options. i suspect we’ve only seen the tip of the iceberg.

1 Like

Are there instructions on doing the Universal build?

Xcode

You pretty much just need to download Xcode 12. Then select this little drop-down thingy and Xcode will build for both platforms.

If you’re using an M1 machine you might also see a dropdown for building/running on Rosetta.

If you don’t see this stuff, check build settings – see below.

macOS Stuff

That will take care of all of your code and all of the macOS libraries – and other standard libraries that are built in to macOS that you might be using (like libz for zipping or libc++ for… whatever people use that for).

If you’re already compiling on Big Sur, and you don’t have any other open source kind of libraries, then you’re probably done.

Other Stuff

From there it’s up to you to make sure that everything else binary in the project is universal too. This stuff only works when the whole app and all it’s little dependencies and libraries are universal.

RapidWeaver Frameworks

First up you’ll need to make sure you have a copy of the universal frameworks from RW 8.8+. That means RWKit and RMKit – and any other RW framework you’re linking to.

Other Other Stuff

If you have other libraries or dependencies you’ll need to download or recompile those for universal too.

Build Settings

If you ONLY see Intel then open your build settings and look for:

  • Architectures

    • choose Standard Archs from the popup
  • Valid Architectures (VALID_ARCHS)

    • set to: x86_64 arm64
  • Build Active Architecture Only (ONLY_ACTIVE_ARCH)

    • Debug: YES
    • Release: NO
      For build-and-run when debugging it’s easiest and fastest to just build for Intel.
  • Excluded Architectures (EXCLUDED_ARCHS)

    • make sure this is blank

Mostly these will be right at the top. The all-caps name is how they appear if you entered them as a custom build setting manually or use xcconfig files to set up your project.

I found one of my older projects had “ONLY_ACTIVE_ARCH” as a custom build setting at the very bottom. I don’t know how it got that way, maybe from Intel 32-bit days? Don’t ask me how many days I spent looking for that – more than I’d like to admit.

2 Likes

First Build Attempt gets this …

What to try next?

I am building on xCode 12 Catalina

Nevermind, found the fix. Including here if anyone else sees same issue …

Set this to “Yes”