I’m trying to publish an iOS / Android app for our company and our corporate publishing service expects me to document any FOSS license used in the app, including engine runtime for each platform, packages and assets.
Any FOSS license must be also displayed in the app via an appropriate page that lists all components used and their relative licenses.
The Unity authoring tool and the Unity runtime should collect all this information and provide a scripting API to generate an array of rich-text strings containing all the legal license informations, which could be rendered (for example) using a Text Mesh Pro component.
A very good example is what Google does with their Flutter framework, which generates a menu page that contains a clickable list of every license used by the app runtine engine and the dependences (packages).
All Flutter packages hook into a registry saved in the project which includes every license.
A simpler alternative would be for unity to provide a PDF or TXT file containing a list of the licenses used by each platform runtime and let the developer implement this in their app.
This is a blocking bug for app development in large organizations.
That is alot of work for others with no necessity for such just because your corp happens to be super anal retentive. You could probably have implemented it in the time it took to create and respond to this thread.
We ship a ‘license.txt’ file inside the Unity Editor install, in Data/Resources, which contains the third party notices. You should be able to read it using the standard System.IO APIs. EditorApplication.applicationContentsPath might help you locate the file programmatically.
There are no plans to provide a dedicated API for accessing this information.
To be honest I was annoyed at first when corporate requested this stuff to be added in the app.
Then I checked what other companies are doing and guess what? Pretty much any large app / project contains a list of FOSS license notices.
So, no, it’s not just my company being weird. It’s literally every company with a large project who complies with standard legal requirements.
It was annoying to find out that Unity (unlike any other app framework) does not offer this out of the box.
Also FYI Unity products are being heavily marketed in the game Automotive / Industrial sectors and other developers I know are stuck, unable to release their applications because of this issue.
Every large organization has to comply with opensource licenses, appstore requirements and other regulations.
For example: “To comply with the license requirements of open source libraries, you as a developer are responsible for appropriately displaying the notices for the open source libraries that your app uses.” https://developers.google.com/android/guides/opensource
These requirements don’t disappear just because you and many (most?) indie devs (especially in the gaming sector) don’t care about these things or overlook these details entirely, .
Yes I’m aware of this file but I’ve been told that “Editor\Data\Resources\legal.txt” only contains informations about the Editor and not the runtimes for the various platforms.
I need to release an app and not the editor obviously.
@ippdev as you can see also Unity distributes these informations with their software.
The thing is, this feature takes probably not more than a day of work IF Unity simply releases a PDF or TXT file that contains the licenses used in the engine runtimes (one for each platform).
That doesn’t sound so hard because they should already know what’s inside each platform runtime, in each version of Unity - Right?
My company is already in contact with them and I’m still waiting for a final answer.
Some people from our company is also in touch with your legal team and that’s what they have been told regarding the standalone runtimes (windows).
I’ve also written to frankn about iOS / Android on the 26 Feb and got no answer yet.
Ok, I’m not trying to be unnerving but … isn’t there something wrong with this document if someone working for Unity can’t clearly understand what it refers to? Perhaps the informations could be split into legal-editor.txt and the various Runtime for each platform: if I am going to publish on Android, I don’t need the licenses covering the stuff that is only specific on windows or to the editor.
Where’s the lack of clarity? They’re asking for official confirmation of something they’re “pretty sure” of, not clarification of something they’re unsure of.
Well, unless my contact is mistaken, I’m also “pretty sure” that it only applies to the editor.
A document called “legal.txt” should not require this sort of guesswork.
This aspect should be clearly stated in the file that comes with Unity, which says:
“This Third Party Notices file provides notices and information about the third party code or other materials listed below (“Third Party Software”) which are included with the Software.”
What’s the “Software”? The editor? The runtime? Both? Something else?
A license should clearly define what is the software, in the same way they define what’s “Third Party Software”.
It seems likely that micsanbr is correct, given that legal.txt lists NUnit and NDecompiler, which hopefully are not being included in runtimes built by Unity.
We are also trying to find the same information that micsanbr is. I have opened a ticket with Unity support.
I did the same and they replied that I should ask this in the forums
Luckily our contact at Unity told me 3 weeks ago that I should get these informations in about 2-3 weeks.
They confirmed that due to the complexity of the task (which is somehow automated but still takes a lot of work) they should be able to provide the informations related only to the version of Unity that I am using for our project.
So for now this process is carried out sort of “on demand” but they are planning something better for the future.