openfl / lime

A foundational Haxe framework for cross-platform development
https://lime.openfl.org/
MIT License
749 stars 359 forks source link

sign only when provisioning file exists on Project.xml #1775

Closed mcagabe19 closed 3 months ago

mcagabe19 commented 3 months ago

that'll allow us to compile on github actions or people has no apple account/provisioning thing

joshtynjala commented 3 months ago

When I've built iOS applications with Lime, I don't think that I have ever specified a provisioning profile. Instead, I specify a team ID.

Either this way (in project.xml):

<config:ios team-id="XXXXXXXXXX"/>

Or this way (in a terminal):

lime build ios --certificate-team-id=XXXXXXXXXX
mcagabe19 commented 3 months ago

not on actions sadly, on actions it's complicated, provisioning profile can expire and if you not have an apple account... you can't really build which I don't have any

joshtynjala commented 3 months ago

My point was that this change seems like it might break my ability to use team-id only because I never specify provisioning-profile:

if (!project.targetFlags.exists("simulator") && project.config.exists("ios.provisioning-profile"))

mcagabe19 commented 3 months ago

My point was that this change seems like it might break my ability to use team-id only because I never specify provisioning-profile:

if (!project.targetFlags.exists("simulator") && project.config.exists("ios.provisioning-profile"))

isn't project.config meant to be for Project.xml?

joshtynjala commented 3 months ago

Yes, why?

mcagabe19 commented 3 months ago

I meant to say if it's project.config.exists("ios.provisioning-profile") only should work when being set by Project.xml not by global, so I don't think it's going to make issues when you use lime build ios --certificate-team-id=XXXXXXXXXX

mcagabe19 commented 3 months ago

you can try it by yourself too (I don't own a mac sorry)

joshtynjala commented 3 months ago

Sorry, I edited this is a few times to clarify things

I'm pretty sure that --certificate-team-id is treated as an override of <config:ios team-id=""/>, so it's basically the same as if you had specified it in project.xml.

Regardless, you seem to have forgotten the first example in my message, which goes in project.xml: <config:ios team-id="XXXXXXXXXX"/>. This can be used to sign without also including <config:ios provisioning-profile="whatever"/>, so if I add team-id only, it won't sign because it is now strictly requiring provisioning-profile, even though I don't need it.

mcagabe19 commented 3 months ago

oh yeah sorry I can fix

joshtynjala commented 3 months ago

I feel like a -nosign command line option would be a better solution. It would allow people to opt into skipping the signing step, while also continuing to provide an error message if you forget team-id/provisioning-profile (or anything else that we might support in the future) when you don't opt in.

mcagabe19 commented 3 months ago

I feel like a -nosign command line option would be a better solution. It would allow people to opt into skipping the signing step, while also continuing to provide an error message if you forget team-id/provisioning-profile (or anything else that we might support in the future) when you don't opt in.

sure let me try