Conversation
…roj` and directory structure for easier maintenance. Updated `Makefile.am` and related files accordingly (not tested). * Moved AO guts into `libalephone` and `libalephonesteam` libraries so they can be built once and shared by multiple `.app` Targets for faster build times. Updated `.app` Targets, static `Info*.plist` files and `cspaths.mm` accordingly. * Added a `Test Replays` Target + Scheme to build a modified AO app with custom `main.cpp` to test the game engine by replaying movie files.
- renamed `Aleph One Test Replays.app` to `AlephOne Tests.app` for consistency with Linux build
…into xcode-cleanup
|
I was able to have the CI tests running based on that branch so that's great. However, the Aleph One Test binary built as an .app was giving me some troubles and I was wondering if it would be possible (if that's easy for you) to change it to be a cmd line application like Classic Marathon Launcher. That would simplify the github workflow. (as long as it doesn't create a new issue I didn't anticipate) If that's not possible or too hard/time consuming that’s totally fine as well of course. |
|
Good to go as it seems |
|
@Kolfering: The standard way to run a macOS .app from command line is to use |
|
@eesmith72 Yeah I know that, however I'd like to be able to use the same code for linux, windows and macOS and not having to write "if" everywhere just because of macOS, even more when the script is using powershell core as the shell. So right now I'am calling directly the binary inside the .app with the same cross platform code, which works but is a bit ugly. if it was a command line application, it could simply be: |
|
macOS GUI apps expect to be packaged in a specific way with As long as the |
|
ok, no prob, as I said I can live with it if it's too troublesome to change |
|
There is no such thing as Marathon 3...why did you change everything from Infinity to 3? |
|
The all-in-one apps build and run for me from Xcode, however if I run the release-macosx workflow, the resulting apps hang on startup with a spinning beach ball. Could it be due to the removal of SCENARIO_IS_BUNDLED? |
The lack of macro shouldn't make a difference: as you say, it works when built locally. The macro just skips over the extra scenario search paths. Maybe something in the release-macosx workflow. I’m not familiar with that. Let me dig into that and get back. ETA: Can you tell me how to set up codesigning for the release-macosx workflow please? |
|
Editing messages on github doesn't send new notifications FYI. |
|
I’ve deleted the codesign and notarization steps from I’ve unquarantined the 4 .apps and manually signed them, e.g.: All apps open and play successfully here, so process of elimination. Codesign and notarization would be obvious things to check.
|
|
The problematic build can be downloaded from here https://github.com/Aleph-One-Marathon/alephone/actions/runs/21876572119 |
|
Thanks. I can reproduce but I’m scratching my head. Something is throwing an exception, but all the try-catch blocks in Please edit the |
|
Can you do it in this PR and revert 010e0d1 since it didn't help? |
| /* | ||
| try { | ||
|
|
||
| */ |
Check notice
Code scanning / CodeQL
Commented-out code Note
Source_Files/main.cpp
Outdated
Check notice
Code scanning / CodeQL
Commented-out code Note
… crash logs are symbolicated
|
Well, I’ve tested these newest builds on 2 different Macs and they are all stubbornly launching and running as normal though I don’t think it’s cos of anything I did. Inspecting the app bundle’s extended permissions (e.g. I didn’t see anything in the YML that might be a cause, though without recreating the codesign and notarization steps for myself I can’t be sure. I’m really not familiar with the CI, but the edits I made the were very simple. Beyond that, scratching my head as to why it broke in first place and why it now seems to be working again. Appreciate if others could try these builds out, let us know how they get on. Any new crash logs, please send them my way (touch-wood the stack trace will be human-readable now). |





#464: xcode-cleanup branch for review
I’ve restructured the
AlephOne.xcodeprojto reduce macOS build times by relocating all code exceptmain.cppinto static libraries which are shared by all apps.== Changes
I’ve renamed the
./PBProjectsdir to./Xcode, and organized and updated theAlephOne.xcodeprojand the directory’s contents.I’ve renamed the Targets and Schemes as follows:
I’ve updated the CI YAMLs in
./.githubto use these names. The newTest ReplaysTarget+Scheme is duplicated fromAleph Oneand modified to use./tests/main.cpp.AO’s guts are now in static-linked
libalephoneandlibalephonesteamlibraries. Each AO app Target declareslibalephone*in its Target Dependencies so these libraries are built automatically as needed.I’ve kept Mac-specific macro/code changes to a minimum:
I’ve replaced the macOS-specific
PREFER_APP_NAME_TO_BUNDLE_IDmacro with a run-timeA1_PREFER_APP_NAME_TO_BUNDLE_IDflag defined in each app’sInfo.plist, so each app should use the same paths to Preferences, et as before. Please confirm each app still uses the previous version’s existing Preferences and other game files.The standalone M1-3 Targets no longer set the
SCENARIO_IS_BUNDLEDmacro. The embeddedDataFilesdir is on the search path anyway so I don’t think this’ll affect run-time behavior on Mac (I can’t comment on Win/Lin.). Please confirm the standalone M1–3 apps behave as before.I have updated paths in
.vdffiles and./Makefile.am. Please confirm the M1-3 Steam releases and various Source source releases build correctly as I haven’t tested these.I’ve added a convenience script,
./Xcode/build-macos-apps.sh, which builds all apps on Mac desktop.== Notes
A clean build of all apps now takes 1:40 on my M1 Mac. With already-built libraries, rebuilding all apps takes 15sec.
I’ve confirmed the CI tests pass and all AO apps launch OMM. I am unable to test
Classic Marathon Launcher, Steam-enabled apps, and theTest Replays.