How to add a 32-bit binary to a bundle in Catalina/Xcode 11.4.1?


John Brownie
 

My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.

Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')

Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.

Thanks for any insights,
John
--
John Brownie
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Alex Zavatone
 

I’m surprised that the 32 bit version loads in Catalina. Wasn’t 32 bit binary compatibility removed in Catalina?

On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@sil.org> wrote:

My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.

Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')

Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.

Thanks for any insights,
John
--
John Brownie
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland



John Brownie
 

I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Peter Hudson
 

I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


John Brownie
 

Don't you love progress? A good thing I still have some Mojave boot volumes, if that's the way it's going to be. But all I need to do is copy the binary, nothing else.

John 

On Fri, 17 Apr 2020 at 15:39, Peter Hudson via groups.io <Peter.hudson=me.com@groups.io> wrote:
I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Peter Hudson
 

Well, from my experience, you’ll have to do that on Mojave. 
Peter

On 17 Apr 2020, at 13:55, John Brownie <john_brownie@...> wrote:


Don't you love progress? A good thing I still have some Mojave boot volumes, if that's the way it's going to be. But all I need to do is copy the binary, nothing else.

John 

On Fri, 17 Apr 2020 at 15:39, Peter Hudson via groups.io <Peter.hudson=me.com@groups.io> wrote:
I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Alex Zavatone
 

Well, crap.  Can you build on a system that does support it and either merge the binary or offer a specific version that is only built for pre Catalina systems?

Iipo wouild let you combine the binaries into one file.

DESCRIPTION
       The  lipo  command  creates  or  operates on ``universal'' (multi-architecture) files.  It only ever produces one output file, and never alters the input
       file.  The operations that lipo performs are: listing the architecture types in a universal file; creating a single universal file from one or more input
       files;  thinning  out a single universal file to one specified architecture type; and extracting, replacing, and/or removing architectures types from the
       input file to create a single new universal output file.




On Apr 17, 2020, at 7:39 AM, Peter Hudson via groups.io <Peter.hudson@...> wrote:

I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


John Brownie
 

It looks like building on Mojave is the best option. I don't want to lipo them into a single file, because there are bugs in the 64-bit version. I did see that there's a new version, so I'll see if the critical bugs are fixed.

John 

On Fri, 17 Apr 2020 at 16:35, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
Well, crap.  Can you build on a system that does support it and either merge the binary or offer a specific version that is only built for pre Catalina systems?

Iipo wouild let you combine the binaries into one file.

DESCRIPTION
       The  lipo  command  creates  or  operates on ``universal'' (multi-architecture) files.  It only ever produces one output file, and never alters the input
       file.  The operations that lipo performs are: listing the architecture types in a universal file; creating a single universal file from one or more input
       files;  thinning  out a single universal file to one specified architecture type; and extracting, replacing, and/or removing architectures types from the
       input file to create a single new universal output file.




On Apr 17, 2020, at 7:39 AM, Peter Hudson via groups.io <Peter.hudson@...> wrote:

I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Alex Zavatone
 

Here’s a suggestion.  Keep a VM of your Mojave build system in case you need to spool it up under VMWare Fusion.



On Apr 17, 2020, at 8:44 AM, John Brownie <john_brownie@...> wrote:

It looks like building on Mojave is the best option. I don't want to lipo them into a single file, because there are bugs in the 64-bit version. I did see that there's a new version, so I'll see if the critical bugs are fixed.

John 

On Fri, 17 Apr 2020 at 16:35, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
Well, crap.  Can you build on a system that does support it and either merge the binary or offer a specific version that is only built for pre Catalina systems?

Iipo wouild let you combine the binaries into one file.

DESCRIPTION
       The  lipo  command  creates  or  operates on ``universal'' (multi-architecture) files.  It only ever produces one output file, and never alters the input
       file.  The operations that lipo performs are: listing the architecture types in a universal file; creating a single universal file from one or more input
       files;  thinning  out a single universal file to one specified architecture type; and extracting, replacing, and/or removing architectures types from the
       input file to create a single new universal output file.




On Apr 17, 2020, at 7:39 AM, Peter Hudson via groups.io <Peter.hudson@...> wrote:

I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland



--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


John Brownie
 

Sounds like a plan. I'll check out the possibilities next week.

John 

On Fri, 17 Apr 2020 at 17:05, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
Here’s a suggestion.  Keep a VM of your Mojave build system in case you need to spool it up under VMWare Fusion.



On Apr 17, 2020, at 8:44 AM, John Brownie <john_brownie@...> wrote:

It looks like building on Mojave is the best option. I don't want to lipo them into a single file, because there are bugs in the 64-bit version. I did see that there's a new version, so I'll see if the critical bugs are fixed.

John 

On Fri, 17 Apr 2020 at 16:35, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
Well, crap.  Can you build on a system that does support it and either merge the binary or offer a specific version that is only built for pre Catalina systems?

Iipo wouild let you combine the binaries into one file.

DESCRIPTION
       The  lipo  command  creates  or  operates on ``universal'' (multi-architecture) files.  It only ever produces one output file, and never alters the input
       file.  The operations that lipo performs are: listing the architecture types in a universal file; creating a single universal file from one or more input
       files;  thinning  out a single universal file to one specified architecture type; and extracting, replacing, and/or removing architectures types from the
       input file to create a single new universal output file.




On Apr 17, 2020, at 7:39 AM, Peter Hudson via groups.io <Peter.hudson@...> wrote:

I had a similar problem - i never found a way to build the 32 bit version of our app on Catalina. As I understand it, there is no 32 bit build support in Catalina. 

I support people who still need 32 bit by building on Mojave. 

Peter

On 17 Apr 2020, at 13:33, John Brownie <john_brownie@...> wrote:


I don't try to run it on Catalina, it's there for older systems. The trouble is that it won't build on Catalina.

John 

On Fri, 17 Apr 2020 at 15:30, Alex Zavatone via groups.io <zav=mac.com@groups.io> wrote:
I’m surprised that the 32 bit version loads in Catalina.  Wasn’t 32 bit binary compatibility removed in Catalina?

> On Apr 17, 2020, at 1:06 AM, John Brownie <john_brownie@...> wrote:
>
> My app ships with a couple of dependent binaries, a 32-bit and a 64-bit version. I do not own these binaries, so have no control over them. On deployment in pre-Catalina, I run the 32-bit version, as the 64-bit version has some bugs in it that are not present in the 32-bit version. I currently target macOS 10.9.
>
> Today, for the first time since I moved my development environment from Mojave to Catalina, I did a build and got an error:
> error: The embedded item 'xxx_32' is missing one or more architectures required by this target: x86_64. (in target 'xxx' from project 'xxx')
>
> Is there a way to prevent this error? The new Xcode 11.4.1 report navigator doesn't seem to show the commands any more, just the output, so I'm not clear what particular command generates the error.
>
> Thanks for any insights,
> John
> --
> John Brownie
> Mussau-Emira language, New Ireland Province, Papua New Guinea
> Kouvola, Finland
>
>
>




--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland



--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Leo
 

But all I need to do is copy the binary, nothing else.

Do you need that binary to actually build the app? Because if not then you can just add a Copy build phase to copy it into the app package after build is done (unless I'm missing something).

Leo


John Brownie
 

It is part of a copy files phase, but it seems that Xcode sees a 32-bit binary and refuses to start actually building it.

John 

On Fri 17. Apr 2020 at 21.36, Leo <leo.r@...> wrote:
But all I need to do is copy the binary, nothing else.

Do you need that binary to actually build the app? Because if not then you can just add a Copy build phase to copy it into the app package after build is done (unless I'm missing something).

Leo

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Leo
 

ok if you need to build that binary then Xcode won't do it on Catalina. i thought it might be something already compiled that you just need to include in the app package.

 Leo


John Brownie
 

Yes, it's a binary that I get from a third party that goes into the executables folder. Is there a way to copy it there in a way that allows me to build the app and go through the whole notarisation process?

John 

On Sat 18. Apr 2020 at 8.47, Leo <leo.r@...> wrote:
ok if you need to build that binary then Xcode won't do it on Catalina. i thought it might be something already compiled that you just need to include in the app package.

 Leo

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Leo
 

frankly, i don't know if you can notarize an app with any kind of 32-bit code inside of it. i suspect you can't.

but once again, i don't know. fortunately, that's at least one aspect of the whole notarization hurdle i didn't have to deal with. so i feel your pain.

good luck!


John Brownie
 

You can notarise with a 32-bit binary as part of the bundle, at least on Mojave. It looks as though Apple want us to drop support for older systems and special cases like mine. I'll be pursuing getting a build environment with Mojave.

John 

On Sat 18. Apr 2020 at 9.09, Leo <leo.r@...> wrote:
frankly, i don't know if you can notarize an app with any kind of 32-bit code inside of it. i suspect you can't.

but once again, i don't know. fortunately, that's at least one aspect of the whole notarization hurdle i didn't have to deal with. so i feel your pain.

good luck!

--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Jack Brindle
 

John;

There may be another way. Create a shell script to copy the binary into the application, then call it from a script phase in the target build. Be sure to use the ditto command for the copy so that you get all the meta parameters for the file(s).

We do our builds from shell scripts. They include copying, signing and notarization among other things, and do include third party libraries. I am pretty sure that I have updated all 32-bit binaries to 64 bits, however.

The Notarization requirements are driven for the most part from the Apple side, so if the app Notarized since the end of February on Mojave, then I would expect it to also do so on Catalina. Also note that you can build with either Xcode 10 or 11 on Catalina - just give them separate names and use Xcode-select to select the one you want. Xcode 10 may not have the limitation that you see with Xcode 11. The February date is important since the heightened requirements such as hardened runtime came into effect at that time. This is part of code signing, which means the vendor supplying the binary must have signed it with hardened runtime and the exception that allows others to include it in their apps.

Jack

On Apr 18, 2020, at 12:11 AM, John Brownie <john_brownie@...> wrote:

You can notarise with a 32-bit binary as part of the bundle, at least on Mojave. It looks as though Apple want us to drop support for older systems and special cases like mine. I'll be pursuing getting a build environment with Mojave.

John 

On Sat 18. Apr 2020 at 9.09, Leo <leo.r@...> wrote:
frankly, i don't know if you can notarize an app with any kind of 32-bit code inside of it. i suspect you can't.

but once again, i don't know. fortunately, that's at least one aspect of the whole notarization hurdle i didn't have to deal with. so i feel your pain.

good luck!


--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Alex Zavatone
 

Just add a shell script that does it for you.  The build environment variables are exposed so you will know where to copy to and you can copy from anywhere on your Mac’s drive.

On Apr 18, 2020, at 12:56 AM, John Brownie <john_brownie@...> wrote:

Yes, it's a binary that I get from a third party that goes into the executables folder. Is there a way to copy it there in a way that allows me to build the app and go through the whole notarisation process?

John 

On Sat 18. Apr 2020 at 8.47, Leo <leo.r@...> wrote:
ok if you need to build that binary then Xcode won't do it on Catalina. i thought it might be something already compiled that you just need to include in the app package.

 Leo


--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland


Alex Zavatone
 

Jack, it might help John if you posted one of those scripts if you’re able to.  Getting used to all the build environment variables and logging the results to a good place can take a bit of time to get good enough.



On Apr 18, 2020, at 10:51 AM, Jack Brindle via groups.io <jackbrindle@...> wrote:

John;

There may be another way. Create a shell script to copy the binary into the application, then call it from a script phase in the target build. Be sure to use the ditto command for the copy so that you get all the meta parameters for the file(s).

We do our builds from shell scripts. They include copying, signing and notarization among other things, and do include third party libraries. I am pretty sure that I have updated all 32-bit binaries to 64 bits, however.

The Notarization requirements are driven for the most part from the Apple side, so if the app Notarized since the end of February on Mojave, then I would expect it to also do so on Catalina. Also note that you can build with either Xcode 10 or 11 on Catalina - just give them separate names and use Xcode-select to select the one you want. Xcode 10 may not have the limitation that you see with Xcode 11. The February date is important since the heightened requirements such as hardened runtime came into effect at that time. This is part of code signing, which means the vendor supplying the binary must have signed it with hardened runtime and the exception that allows others to include it in their apps.

Jack

On Apr 18, 2020, at 12:11 AM, John Brownie <john_brownie@...> wrote:

You can notarise with a 32-bit binary as part of the bundle, at least on Mojave. It looks as though Apple want us to drop support for older systems and special cases like mine. I'll be pursuing getting a build environment with Mojave.

John 

On Sat 18. Apr 2020 at 9.09, Leo <leo.r@...> wrote:
frankly, i don't know if you can notarize an app with any kind of 32-bit code inside of it. i suspect you can't.

but once again, i don't know. fortunately, that's at least one aspect of the whole notarization hurdle i didn't have to deal with. so i feel your pain.

good luck!


--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland



Sandor Szatmari
 

When I need to see all the build environment variables Xcode can see I just add a run script with the command ‘printenv’ in it.  Then I find what I need in the results shown in Xcode.

Sandor

On Apr 18, 2020, at 14:26, Alex Zavatone via groups.io <zav@...> wrote:

Jack, it might help John if you posted one of those scripts if you’re able to.  Getting used to all the build environment variables and logging the results to a good place can take a bit of time to get good enough.



On Apr 18, 2020, at 10:51 AM, Jack Brindle via groups.io <jackbrindle@...> wrote:

John;

There may be another way. Create a shell script to copy the binary into the application, then call it from a script phase in the target build. Be sure to use the ditto command for the copy so that you get all the meta parameters for the file(s).

We do our builds from shell scripts. They include copying, signing and notarization among other things, and do include third party libraries. I am pretty sure that I have updated all 32-bit binaries to 64 bits, however.

The Notarization requirements are driven for the most part from the Apple side, so if the app Notarized since the end of February on Mojave, then I would expect it to also do so on Catalina. Also note that you can build with either Xcode 10 or 11 on Catalina - just give them separate names and use Xcode-select to select the one you want. Xcode 10 may not have the limitation that you see with Xcode 11. The February date is important since the heightened requirements such as hardened runtime came into effect at that time. This is part of code signing, which means the vendor supplying the binary must have signed it with hardened runtime and the exception that allows others to include it in their apps.

Jack

On Apr 18, 2020, at 12:11 AM, John Brownie <john_brownie@...> wrote:

You can notarise with a 32-bit binary as part of the bundle, at least on Mojave. It looks as though Apple want us to drop support for older systems and special cases like mine. I'll be pursuing getting a build environment with Mojave.

John 

On Sat 18. Apr 2020 at 9.09, Leo <leo.r@...> wrote:
frankly, i don't know if you can notarize an app with any kind of 32-bit code inside of it. i suspect you can't.

but once again, i don't know. fortunately, that's at least one aspect of the whole notarization hurdle i didn't have to deal with. so i feel your pain.

good luck!


--
John Brownie, john_brownie@...
Mussau-Emira language, New Ireland Province, Papua New Guinea
Kouvola, Finland