Improvements for BuildProcess flow

Report bugs here
Catch22
Posts: 4
Joined: Wed Mar 24, 2021 12:25 pm

Improvements for BuildProcess flow

Post by Catch22 »

With unity 2020 you can build xcode project for macos platform. So when you try to build this, some bugs appears.
In BuildProcess.cs in method PostProcessXCodeProject(string path) replace

Code: Select all

#if UNITY_STANDALONE_OSX && UNITY_2019_3_OR_NEWER
            string pbxPath = Path.Combine(path, "./project.pbxproj");
#else
            string pbxPath = PBXProject.GetPBXProjectPath(path);
#endif
            var pbxProject = new PBXProject();
            pbxProject.ReadFromFile(pbxPath);

            var name = PlayerSettings.applicationIdentifier.Split('.').Last();
with

Code: Select all

#if UNITY_STANDALONE_OSX && UNITY_2020_1_OR_NEWER
            string pbxPath = Path.Combine(path, $"{new DirectoryInfo(path).Name}.xcodeproj", "project.pbxproj");
            var name = PlayerSettings.productName;
#elif UNITY_STANDALONE_OSX && UNITY_2019_3_OR_NEWER
            string pbxPath = Path.Combine(path, "./project.pbxproj");
            var name = PlayerSettings.applicationIdentifier.Split('.').Last();
#else
            string pbxPath = PBXProject.GetPBXProjectPath(path);
            var name = PlayerSettings.applicationIdentifier.Split('.').Last();
#endif
            var pbxProject = new PBXProject();
            pbxProject.ReadFromFile(pbxPath);

And second one is from method BuildSettings GetBuildSettings():
Maybe it’s related to Unity version or smh.
Main problem is when unity compile new files it’s calls static constructor earlier than rebuild resources map.
In static constructor plugin trying to call “var settings = Resources.Load<BuildSettings>(Path.GetFileNameWithoutExtension(SettingsAssetFilePath));”, but because resource map in not rebuilds yet, settings is null.
So in first recompile it cannot find file in resources and create same one, so all settings is ressetting.
If you change method to something like that it fill fix this:

Code: Select all

private static BuildSettings GetBuildSettings()
        {
            var settingsGuids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension(SettingsAssetFilePath));
            BuildSettings settings;

            if (settingsGuids == null || settingsGuids.Length != 0)
            {
                settings = ScriptableObject.CreateInstance<BuildSettings>();
                Directory.CreateDirectory(Path.GetDirectoryName(SettingsAssetFilePath));
                AssetDatabase.CreateAsset(settings, SettingsAssetFilePath);
            }
            else
            {
                settings = AssetDatabase.LoadAssetAtPath<BuildSettings>(AssetDatabase.GUIDToAssetPath(settingsGuids.First()));
            }

            return settings;
        }
I try to find by object type, but at full recompile in can't find it either. So only by name.

admin
Site Admin
Posts: 49
Joined: Thu Mar 19, 2020 8:52 pm

Re: Improvements for BuildProcess flow

Post by admin »

Thank you for reporting this issue. I will integrate your feedback and patch the build script.

Cheers,
-Jonathan

Catch22
Posts: 4
Joined: Wed Mar 24, 2021 12:25 pm

Re: Improvements for BuildProcess flow

Post by Catch22 »

Catch22 wrote:
Fri Mar 26, 2021 9:43 am
With unity 2020 you can build xcode project for macos platform. So when you try to build this, some bugs appears.
In BuildProcess.cs in method PostProcessXCodeProject(string path) replace

Code: Select all

#if UNITY_STANDALONE_OSX && UNITY_2019_3_OR_NEWER
            string pbxPath = Path.Combine(path, "./project.pbxproj");
#else
            string pbxPath = PBXProject.GetPBXProjectPath(path);
#endif
            var pbxProject = new PBXProject();
            pbxProject.ReadFromFile(pbxPath);

            var name = PlayerSettings.applicationIdentifier.Split('.').Last();
with

Code: Select all

#if UNITY_STANDALONE_OSX && UNITY_2020_1_OR_NEWER
            string pbxPath = Path.Combine(path, $"{new DirectoryInfo(path).Name}.xcodeproj", "project.pbxproj");
            var name = PlayerSettings.productName;
#elif UNITY_STANDALONE_OSX && UNITY_2019_3_OR_NEWER
            string pbxPath = Path.Combine(path, "./project.pbxproj");
            var name = PlayerSettings.applicationIdentifier.Split('.').Last();
#else
            string pbxPath = PBXProject.GetPBXProjectPath(path);
            var name = PlayerSettings.applicationIdentifier.Split('.').Last();
#endif
            var pbxProject = new PBXProject();
            pbxProject.ReadFromFile(pbxPath);

And second one is from method BuildSettings GetBuildSettings():
Maybe it’s related to Unity version or smh.
Main problem is when unity compile new files it’s calls static constructor earlier than rebuild resources map.
In static constructor plugin trying to call “var settings = Resources.Load<BuildSettings>(Path.GetFileNameWithoutExtension(SettingsAssetFilePath));”, but because resource map in not rebuilds yet, settings is null.
So in first recompile it cannot find file in resources and create same one, so all settings is ressetting.
If you change method to something like that it fill fix this:

Code: Select all

private static BuildSettings GetBuildSettings()
        {
            var settingsGuids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension(SettingsAssetFilePath));
            BuildSettings settings;

            if (settingsGuids == null || settingsGuids.Length == 0)
            {
                settings = ScriptableObject.CreateInstance<BuildSettings>();
                Directory.CreateDirectory(Path.GetDirectoryName(SettingsAssetFilePath));
                AssetDatabase.CreateAsset(settings, SettingsAssetFilePath);
            }
            else
            {
                settings = AssetDatabase.LoadAssetAtPath<BuildSettings>(AssetDatabase.GUIDToAssetPath(settingsGuids.First()));
            }

            return settings;
        }
I try to find by object type, but at full recompile in can't find it either. So only by name.

KathrynCruth
Posts: 3
Joined: Thu Jul 15, 2021 7:41 am

Полоса 44НХТЮ

Post by KathrynCruth »

Приглашаем Ваше предприятие к взаимовыгодному сотрудничеству в сфере производства и поставки Полоса 44НХТЮ.
- Поставка тугоплавких и жаропрочных сплавов на основе (молибдена, вольфрама, тантала, ниобия, титана, циркония, висмута, ванадия, никеля, кобальта);
- Поставка концентратов, и оксидов
- Поставка изделий производственно-технического назначения пруток, лист, проволока, сетка, тигли, квадрат, экран, нагреватель) штабик, фольга, контакты, втулка, опора, поддоны, затравкодержатели, формообразователи, диски, провод, обруч, электрод, детали,пластина, полоса, рифлёная пластина, лодочка, блины, бруски, чаши, диски, труба.
- Любые типоразмеры, изготовление по чертежам и спецификациям заказчика.
- Поставка изделий из сплавов:

Проволока 1.3981
Изделия из ХН60Ю - ГОСТ 5632-72
Проволока 2.4622
Труба 50НП
Лист ЭП797
6b2d479

KathrynCruth
Posts: 3
Joined: Thu Jul 15, 2021 7:41 am

Проволока ХН35ВТЮ - ГОСТ 5632-72

Post by KathrynCruth »

Приглашаем Ваше предприятие к взаимовыгодному сотрудничеству в сфере производства и поставки Проволока ХН35ВТЮ - ГОСТ 5632-72.
- Поставка тугоплавких и жаропрочных сплавов на основе (молибдена, вольфрама, тантала, ниобия, титана, циркония, висмута, ванадия, никеля, кобальта);
- Поставка катализаторов, и оксидов
- Поставка изделий производственно-технического назначения пруток, лист, проволока, сетка, тигли, квадрат, экран, нагреватель) штабик, фольга, контакты, втулка, опора, поддоны, затравкодержатели, формообразователи, диски, провод, обруч, электрод, детали,пластина, полоса, рифлёная пластина, лодочка, блины, бруски, чаши, диски, труба.
- Любые типоразмеры, изготовление по чертежам и спецификациям заказчика.
- Поставка изделий из сплавов:

Круг ЭП437
Ниобий НбПГ-4
Изделия из вольфрама ВА
Проволока 2.4855
Фольга 2.4162
ec6_f37

KathrynCruth
Posts: 3
Joined: Thu Jul 15, 2021 7:41 am

Проволока 47НД-ВИ

Post by KathrynCruth »

Приглашаем Ваше предприятие к взаимовыгодному сотрудничеству в сфере производства и поставки Проволока 47НД-ВИ.
- Поставка тугоплавких и жаропрочных сплавов на основе (молибдена, вольфрама, тантала, ниобия, титана, циркония, висмута, ванадия, никеля, кобальта);
- Поставка концентратов, и оксидов
- Поставка изделий производственно-технического назначения пруток, лист, проволока, сетка, тигли, квадрат, экран, нагреватель) штабик, фольга, контакты, втулка, опора, поддоны, затравкодержатели, формообразователи, диски, провод, обруч, электрод, детали,пластина, полоса, рифлёная пластина, лодочка, блины, бруски, чаши, диски, труба.
- Любые типоразмеры, изготовление по чертежам и спецификациям заказчика.
- Поставка изделий из сплавов:

Лист ЭП437
Проволока 2.4765
Электрод вольфрамовый WT20
ХН62ВМЮТ-ВД
Труба ХН38ВТ-ВД
35c3a7b

User avatar
XRumerTest
Posts: 2
Joined: Wed Jul 21, 2021 9:09 pm

Test, just a test

Post by XRumerTest »

Hello. And Bye.

Post Reply