Common Jenkins Build Issues
Common Jenkins build issues and solutions.
Last updated
Common Jenkins build issues and solutions.
Last updated
14:25:40 COMMAND LINE ARGUMENTS:
14:25:40 /Applications/Unity/Hub/Editor/2021.3.9f1/Unity.app/Contents/MacOS/Unity
14:25:40 -quit
14:25:40 -buildTarget
14:25:40 Android
14:25:40 -username
14:25:40 builds@lionstudios.cc
14:25:40 -password
14:25:40 (hidden)
14:25:40 -projectPath
14:25:40 /Users/jenkins/build/workspace/LevelUpRunner
14:25:40 -
14:25:40 Android
14:25:40 -executeMethod
14:25:40 AutoBuilder.BuildAndroid
14:25:40 -Args:environment=Development;versionNumber=1;buildNumber=1;buildName=1(1);jdkPath=/Applications/Unity/Hub/Editor/2019.4.29f1/PlaybackEngines/AndroidPlayer/OpenJDK;reimportAssets=true;
14:25:40 -batchmode
14:25:40 -nographics
14:25:40 Couldn't set project path to:
14:25:4014:25:40 Aborting batchmode due to failure:
Solution:
There must be a space
in your Jenkins Job
name. Remove the space
.
If the TextMeshPro-related assets are missing after building from Jenkins, then
Go to .gitignore
file in your project’s root
folder
Comment out or delete any TextMeshPro-related filters
Commit the TextMeshPro files that are in Assets/
Note: if there are no TextMeshPro files in Assets/
, you must first open the Unity Project locally and accept the TextMeshPro popup.
To edit the .gitignore
file:
With Sourcetree:
Settings
→ Advanced
→ Repository-specific ignore list
→ Edit
With file system:
Display hidden files and folders (MacOS: CMD
+ SHIFT
+ .
)
Open the file .gitignore
at the root of your repo
The builds keep crashing, and the logs look like the below-shown image in the Android Logcat window.
Solution:
An entry needs to be added to AndroidManifest.xml
for Google Ad IDs. The ad ID would be located in the Applovin MAX AppLovin Integration Manager
.
<manifest>
<application>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
Solution:
Contact your Product Manager or our QA Team to get the current provisioning profile.
In your project, ensure you have a /ProvisioningProfiles
folder. Place your provisioning profile in this folder, replacing any older version(s) with the same name.
Solution:
Update Firebase. To update Firebase:
Delete Assets/Firebase
Delete Assets/GeneratedLocalRepo
Delete Assets/Plugins/<anything with Firebase in the filename>
Install the newer Firebase package
Delete Assets/Plugins/Android/AndroidManifest.xml
Delete Assets/Plugins/Android/mainTemplate.gradle
Delete Assets/Plugins/Android/launcherTemplate.gradle
Delete Assets/Plugins/Android/baseProjectTemplate.gradle
Delete Assets/Plugins/Android/gradleTemplate.properties
Uncheck
then re-check
the checkboxes in Publishing Settings
(the ones that were already checked in your project).
Click Assets
→ External Dependency Manager
→ Android Resolver
→ Force Resolve
To resolve this error, go to the Assets
→ OpenVessel
→ Plugins
→ Editor
→ Dependencies.xml
Add the parameter minTargetSdk=13.0
to the OpenVesselSDK
iosPod
line. Next, restart Unity. Unity should show that OpenVessel wants to update its target SDK version to 13.0. If it doesn’t, in Unity iOS Build Settings
, manually update the Target SDK
version from 11.0
→ 13.0
.
error: no known class method for selector 'sizeMRec'
Solution:
This error results from Applovin Cross Promo version 1.0.0
installed in the project. To resolve this error, in your code editor go to:
Assets
→ AppLovin - CrossPromo
→ Plugins
→ iOS
and edit the line causing this error. Change the variable name from sizeMRec
to mrec
.
error: Signing for "FBSDKCoreKit-FacebookSDKStrings" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'FBSDKCoreKit-FacebookSDKStrings' from project 'Pods')
Solution:
The Facebook SDK needs to be updated to 14.1+
. The updated version will require the client token
from Facebook App settings. Please contact your Product Manager or Lion Support for help finding your client token
.
The NiceVibration and Max SDK are likely overwriting each other’s code for SWIFT_VERSION
.
Solution 1:
To resolve, manually edit MAX SDK’s code and set Swift version to 5.1
. After fixing the Swift version error, if you are using FB SDK Version
≥ 11.0.0
, there may be another error in your Xcode build:
Solution 2:
NiceVibrations, by Nice Mountains, has been replaced by FEEL, also by Nice Mountains, in the Unity Asset store.
The NiceVibration package needs to be updated to FEEL package. Sign into the Unity Asset Store and download FEEL.
The code is quite different from NiceVibrations package, so there will be many syntax errors to fix:
Namespace changed from MoreMountains.NiceVibrations
to Lofelt.NiceVibrations
MMVibrationManager
is replaced by HapticController
& HapticPatterns
MMVibrationManager.SetActive
→ HapticController.hapticsEnabled
HapticType
→ HapticPatterns.PresetType
MMVibrationManager.Haptic(HapticTypes.LightImpact) -> becomes ->
HapticPatterns.PlayPreset(HapticPatterns.PresetType.LightImpact);
e. MMVibrationManager.Haptic
→ HapticPatterns.PlayPreset
f. MMVibrationManager.TransientHaptic
→ HapticPatterns.PlayEmphasis
Solution:
In Project Settings
→ Editor
section, uncheck Caching Preprocessor
.
21:19:56 [!] Unable to find host target(s) for UnityFramework, OneSignalNotificationServiceExtension. Please add the host targets for the embedded targets to the Podfile.
21:19:57 Certain kinds of targets require a host target. A host target is a "parent" target which embeds a "child" target. These are example types of targets that need a host target:
21:19:57 - Framework
21:19:57 - App Extension
21:19:57 - Watch OS 1 Extension
21:19:57 - Messages Extension (except when used with a Messages Application)
Solution:
Add OneSignal provisioning profiles
Upload Failed: - The Caller does not have permission
Solution:
Wrong credentials selected. Note that Lion Studios has separate Google Play accounts for:
Lion Studios,
Lion Studios Plus, and
HippoTap
Each game needs to use the correct credentials for the account that game is published under. Verify which store account your game is listed under and select those credentials.
This issue generally happens when we are trying to do incremental builds without using the delete workspace
option from parameters.
Solution:
Rebuild the build with delete workspace
enabled.
Error log from console:
Error loading /var/containers/Bundle/Application/293CBE8E-0471-4698-A252-1D70A03231DA/TheRealJuggle.app/Frameworks/UnityFramework.framework/UnityFramework (140): dlopen(/var/containers/Bundle/Application/293CBE8E-0471-4698-A252-1D70A03231DA/TheRealJuggle.app/Frameworks/UnityFramework.framework/UnityFramework, 0x0109): Library not loaded: @rpath/FBAEMKit.framework/FBAEMKit
Referenced from: <36EA6546-8FFC-3C2C-AA37-D7206FDFF548> /private/var/containers/Bundle/Application/293CBE8E-0471-4698-A252-1D70A03231DA/TheRealJuggle.app/Frameworks/UnityFramework.framework/UnityFramework
Reason: tried: '/usr/lib/swift/FBAEMKit.framework/FBAEMKit' (no such file, not in dyld cache), '/private/preboot/Cryptexes/OS/usr/lib/swift/FBAEMKit.framework/FBAEMKit' (no such file), '/usr/lib/swift/FBAEMKit.framework/FBAEMKit' (no such file, not in dyld cache), '/private/preboot/Cryptexes/OS/usr/lib/swift/FBAEMKit.framework/FBAEMKit' (no such file), '/private/var/containers/Bundle/Application/293CBE8E-0471-4698-A252-1D70A03231DA/<…>
Solution:
In iOS Resolver Settings
, set Link Frameworks statically
to false
Example:
20:18:32 Assets/Scripts/_SDKs/FacebookSdk.cs(6,7): error CS0246: The type or namespace name 'Facebook' could not be found (are you missing a using directive or an assembly reference?)
This is not necessarily Facebook, it could be other SDK classes or namespaces. The game’s repo probably uses git-lfs
to store these library files, but the job doesn’t have the GIT LFS pull step.
Solution:
In the Source Code Management
section, click the Add
button under Additional Behaviors
, and select Git LFS pull after checkout
Save the project and it should now use git-lfs
successfully.
Solution:
Go to Window → Asset Management → Addressables → Settings
Uncheck “Compress Local Catalog”.
Select “Build Addressables content on Player Build” option.
Go to Window → Asset Management → Addressables → Groups
Uncheck “Include In Build” for the empty groups that don’t have any assets assigned to it.
Ask @lion-support to check if the jenkins job is setup for addressables (DELETE_WORKSPACE should be turned off, and job should be restricted to 1 agent)