Quests
Quests copied to clipboard
Github actions based releases
Just curious if there is any interest in having GitHub actions trigger a fastlane release that is provided on github in case someone wants to get the latest version without building or going to the mac app store? I've done a little on that sort of thing for another project so I might be able to do something for this, but wanted to gauge interest first.
That would be fantastic 🚀
I didn't forget about this. I did however just start on it and I'm working through getting fastlane to work on a personal project so I can try to transfer that knowledge into quests. It's proving to be challenging, but I'm hoping there will be a way to get this done.
I was hoping my previous fastlane knowledge would be more useful, but we were building a library so it's a bit different than an app (provisioning profiles 🤮).
Just wanted to post a little update.
I finally got an app build working with fastlane, but the next part I wanted to be able to tackle was notarization. I figured this GitHub release strategy would be handy to get the app into people's hands fast, but having something signed and ready to open without having to right click open would be ideal for basically everyone. Hoping I can figure that part out soon, but getting it (my app) to build wasn't terribly difficult. I know Quests has this notion of a launcher and a beta and I haven't spent enough time looking through the code to figure out exactly what that means.
First things first.
I was able to notarize my app and verify it's notarization via an app called Apparency. I think we could do the same with Quests, but I don't think I could do it via a PR. I do however think that I could probably help make sure that it works. What we'd likely need to do is first make sure you all can follow the below steps locally and then I'd hopefully be able to create an action that takes the notarized app and puts in the GitHub releases aka automate this whole process just a tad bit more.
Technically the app doesn't need to be notarized, but it would require anyone that opens the app from a downloaded release to go through a little trouble to run the app (for the first open). Basically they'd need to either right click the app and click open or they'd try to open the first time and then have to allow it via System Preferences. For this reason I think notarization is the right call.
Alternatively, there is a way for fastlane to automatically upload to the Mac App Store but I haven't delved into that. I would imagine it's not very difficult to take the build script and turn that into an app upload, but my test app isn't something I'd want to upload there.
I didn't list the fastlane install instructions but they're pretty trivial and I could help out with that if needed.
Motivation
If PRs are submitted for the app, it would be nice for users to be able to access that version before Steamclock can find the time to upload to Mac App Store.
What's missing
Build number/version updating is out of scope for this, but should be trivial to implement.
If you want to try this out
Soooo if any of this interests you, I listed the steps below to notarize this locally via fastlane:
-
Put that generated
.p8
file in your fastlane directory. -
Create a fastfile that looks approximately like this
platform :mac do
desc "Building and signing mac app"
lane :sign do
api_key = app_store_connect_api_key(
key_id: "your_teamid",
issuer_id: "your_issuer_id",
key_filepath: "./fastlane/AuthKey_your_teamid.p8",
)
build_app(
xcargs: "-allowProvisioningUpdates",
configuration: "Release",
export_method: "developer-id"
)
notarize(
package: "./Project.app",
bundle_id: "your_bundle_id",
api_key: api_key
)
end
end
- Run this command
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=app_specific_password bundle exec fastlane sign
to build and notarize the app locally.
Notes:
How to create an app specific password How I found info about notarizing via the terminal Example fastfile I used for reference in building my own GitHub issue talking about how you need an app specific password to notarize via fastlane (probably for notarizing just in general) Just for fun how to access a keychain password via the terminal
That was a lot so if you don't want to go down this route I totally get it, but I do think this would be pretty cool to implement and potentially valuable for users and for whomever to learn a little more about. I know I enjoyed (re: struggled) to learn about. 🍻
Hey there thanks for all the research! I'm sorry it's taken me so long to get back to you, things have been pretty busy here.
This would definitely be great to have, but seems like it's going to require some work on our end to set up and debug that I can't really commit to right now unfortunately. I'm happy to keep this issue open in the meantime, and if we have time in the future I'd love to get this set up.
The good news is, I've submitted Quests 1.3.0 to the app store with all the improvements made thus far, and will try and be better out releasing changes more frequently as they're merged in the future 🚀
@brendanlensink All good. I kinda figured this was a side endeavor. I think there is some really cool stuff to be done with fastlane, but like you said it would take some work on your end. At some point I'll (hopefully) get an app I am working on into the App Store using fastlane and maybe that research will be beneficial here.