Hi, I’m not sure where to place this issue but I think it is a bug regarding the Unity Purchasing Service.
The situation is following:
We are running a build slave for our builds with a buildscript executing the BuildPipeline.BuildPlayer method. This systems worked now for quit a long time but with the new unity versions we encountered the following issue:
But the missing dll were checked out and exists in the workspace. If we try to build manually it also works.
Fortunatly this issue only appears on new jobs or when we clear the workspace of an existing job.
Unfortunatly this bug occoures in every of our projects.
The IAP Service ist activated and a user with a valid pro licence is logged in on our build maschine.
I tried deleting the library and the temp folder and building the project again manually. But after the (successfull, manual) build, the BuildPipeline command still fails with the same errors.
We also have a identical job with nearly the identical workspace for our android builds wich works perfectly.
The problem still exists. I’m afraid I cannot send you our complete projects as they are multiple gb of file size.
The only help I can give is a report on what happens with every project we have:
Create new project
Import IAP
Checkout project on a Mac OS maschine
Build via BuildPipeline → success
Update IAP on original maschine (when IAP updates are available)
Push changes to server (we use git)
Pull changes on Mac OS maschine
Build via BuildPipeline → still success
Checkout project again on Mac OS maschine into a different folder
Build via BuildPipeline → Bug
Build manually → success
Build via BuildPipeline → still Bug (new)
I’m not 100% sure but this is the way we reproduced the issue everytime in every project of ours. Currently we have min 5 projectes affected by this issue. For a long time we had a workaround to manually build the project on the Mac OS maschine successfully, and building again with BuildPipeline. Then it worked, but not since the latest IAP update (2017.1). Now this workaround also doesn’t work any longer.
I cannot say for my own that the problem only occurs on Mac OS but this is the os our build server runs with.
Services are active, deleting library folder doesn’t work either
Sorry for the delayed response but we tried to solve this problem by our own since we suspect the issue on our side
We are also having this problem. It only seems to happen if we switch build target though possibly? (ie. build iOS successfully, switch to Android on a subsequent build and it fails). This is super frustrating as it makes automated building much trickier than it needs to be. We also had issues on UCB which only started happening when we enabled iAP in the project, it definitely seems to be related to the iAP Unity module.
Any updates on this? With the latest version of IAP and Unity (2017.3f03) we can not even build only one project via the build pipeline. It seems that UNITY_ANALYTICS is not enabled on the build machine. Opening the project manually works. An automatic build directly after opening it manually, also works. But every additional build fails again.
Please guys, implementing your IAP service with all its technical teething and bugs took us a lot of time. Having a automatic build pipeline is totally necessary for us or every other small-middle-sized company.
Reproduction:
import IAP in a project
checkout the project on a different build machine (we are using a Mac Pro)
One important item, make sure that you are also including your Library folder in source control. This may or may not be relevant here, but I wanted to point it out. If you are sharing/uploading your project and not including the Library folder, you may see issues like this. Generally including the Library folder is not necessary, we are working on this issue. I will do additional checking here also.
We use Jenkins to auto-build android and ios package. There are two different project in Jenkins, checking out codes at different path. I login as Jenkins and open ios project once manually, then ios build succeeded but android build failed. And open android project manually, then ios build failed but android build succeeded. (build by Jenkins)
Let me guess what happened: Unity saved local datas that indicating the Project-ID is building for what platform. When open project manually(and change platform), Unity check platform again and rewrite the local datas. But in batchmode, Unity just read the local datas and think it’s for the wrong platform at some steps (such as loading IAP plugins).
So we included the whole library folder in git. Still the same. IAP is installed but not enabled when the build pipline starts to build.
We also receive this log message:
Message
Assets/Plugins/UnityPurchasing/script/PurchasingCheck.cs(3,0): warning CS1030: #warning: `“Unity IAP plugin is installed, but Unity IAP is not enabled. Please enable Unity IAP in the Services window.”’
The logged in user on the build slave is member of the project and company and has a valid unity pro license.
Is there maybe a way to enable or check the services per code?