Я всегда получаю одну и ту же странную ошибку, когда пытаюсь создать .ipa из iOS-версии моей игры libGDX. Я использую robovm версии 2.3.5. Ошибка показывает только это сообщение на консоли robovm:
`[ERROR] Undefined symbols for architecture armv7:
[ERROR] "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] std::_Rb_tree > >, std::_Select1st > > >, std::less, std::allocator > > > >::_M_insert_unique(std::_Rb_tree_iterator > > >, std::pair > > const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] ...
[ERROR] "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] btInverseDynamicsBullet3::User2InternalIndex::buildMapping() in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] std::_Rb_tree > >, std::_Select1st > > >, std::less, std::allocator > > > >::_M_insert_unique(std::_Rb_tree_iterator > > >, std::pair > > const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] "std::string::_Rep::_S_empty_rep_storage", referenced from:
[ERROR] std::map, std::allocator > >::operator[](int const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::map, std::allocator > >::operator[](std::string const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] btInverseDynamicsBullet3::writeGraphvizDotFile(btInverseDynamicsBullet3::MultiBodyTree const*, btInverseDynamicsBullet3::MultiBodyNameMap const*, char const*) in libgdx-bullet.a(MultiBodyTreeDebugGraph.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) in libgdx-bullet.a(extras_wrap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) in libgdx-bullet.a(extras_wrap.o)
[ERROR] "std::string::assign(std::string const&)", referenced from:
[ERROR] btInverseDynamicsBullet3::MultiBodyNameMap::addBody(int, std::string const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] btInverseDynamicsBullet3::MultiBodyNameMap::addJoint(int, std::string const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] btInverseDynamicsBullet3::MultiBodyNameMap::getBodyName(int, std::string*) const in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] btInverseDynamicsBullet3::MultiBodyNameMap::getJointName(int, std::string*) const in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] "std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] std::_Rb_tree > >, std::_Select1st > > >, std::less, std::allocator > > > >::_M_insert_unique(std::_Rb_tree_iterator > > >, std::pair > > const&) in libgdx-bullet.a(User2InternalIndex.o)
[ERROR] ...
[ERROR] "std::string::_Rep::_M_destroy(std::allocator const&)", referenced from:
[ERROR] std::map, std::allocator > >::operator[](int const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::map, std::allocator > >::operator[](std::string const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] btInverseDynamicsBullet3::writeGraphvizDotFile(btInverseDynamicsBullet3::MultiBodyTree const*, btInverseDynamicsBullet3::MultiBodyNameMap const*, char const*) in libgdx-bullet.a(MultiBodyTreeDebugGraph.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) in libgdx-bullet.a(extras_wrap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) in libgdx-bullet.a(extras_wrap.o)
[ERROR] "std::basic_string, std::allocator >::basic_string(std::string const&)", referenced from:
[ERROR] std::map, std::allocator > >::operator[](int const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::map, std::allocator > >::operator[](std::string const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_create_node(std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_create_node(std::pair const&) in libgdx-bullet.a(MultiBodyNameMap.o)
[ERROR] ld: symbol(s) not found for architecture armv7
[ERROR] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR] Couldn't create IPA
org.apache.commons.exec.ExecuteException: Command '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -o /var/folders/g8/ngcg1rn95r506xwdly9s9t2r0000gn/T/robovm1251516344287298932.tmp/thumbv7/IOSLauncher -arch armv7 -Wl,-filelist,/var/folders/g8/ngcg1rn95r506xwdly9s9t2r0000gn/T/robovm1251516344287298932.tmp/thumbv7/objects0 -w -L /Users/macUser/.robovm-sdks/robovm-2.3.5/lib/vm/ios/thumbv7 -ObjC -exported_symbols_list /var/folders/g8/ngcg1rn95r506xwdly9s9t2r0000gn/T/robovm1251516344287298932.tmp/thumbv7/exported_symbols -Wl,-no_implicit_dylibs -Wl,-dead_strip -fPIC -miphoneos-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -lrobovm-bc -force_load /Users/macUser/.robovm-sdks/robovm-2.3.5/lib/vm/ios/thumbv7/librobovm-rt.a -lrobovm-core -lgc -lpthread -ldl -lm -lz -liconv -lsqlite3 -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework CoreGraphics -framework OpenAL -framework AudioToolbox -framework AVFoundation -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-box2d-platform/1.9.8/eb549ac5a5dbb5663eacf782d8cb8f22731638e0/gdx-box2d-platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libgdx-box2d.a -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-bullet-platform/1.9.8/44de3e9678419ae2a4cfe7fd674b1bf82d56ae20/gdx-bullet-platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libgdx-bullet.a -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.9.8/6e511ad1e19a8c5f792bb149d78c4e7e6f9e828f/gdx-platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libgdx.a -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.9.8/6e511ad1e19a8c5f792bb149d78c4e7e6f9e828f/gdx-platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libObjectAL.a -lz -framework MobileCoreServices -Xlinker -sdk_version -Xlinker 12.1 -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks' failed (Exit value: 1)
at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:346)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:149)
at org.robovm.compiler.util.Executor.exec(Executor.java:344)
at org.robovm.compiler.util.ToolchainUtil.link(ToolchainUtil.java:385)
at org.robovm.compiler.target.AbstractTarget.doBuild(AbstractTarget.java:276)
at org.robovm.compiler.target.ios.IOSTarget.doBuild(IOSTarget.java:349)
at org.robovm.compiler.target.AbstractTarget.build(AbstractTarget.java:270)
at org.robovm.compiler.Linker.link(Linker.java:433)
at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:466)
at org.robovm.compiler.AppCompiler.build(AppCompiler.java:784)
at org.robovm.idea.compilation.RoboVmCompileTask$1.doCompile(RoboVmCompileTask.java:123)
at org.robovm.idea.compilation.RoboVmCompilerThread.run(RoboVmCompilerThread.java:66)`
Это мой build.graddle:
`buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
apply plugin: 'signing'
google()
}
dependencies {
classpath 'org.wisepersist:gwt-gradle-plugin:1.0.6'
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.5'
}
}
allprojects {
apply plugin: "eclipse"
apply plugin: "idea"
version = '1.0'
ext {
appName = "Debt Collector"
gdxVersion = '1.9.8'
roboVMVersion = '2.3.5'
box2DLightsVersion = '1.4'
ashleyVersion = '1.7.0'
aiVersion = '1.8.0'
}
repositories {
mavenLocal()
mavenCentral()
google()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}
}
project(":android") {
apply plugin: "android"
configurations { natives }
dependencies {
implementation project(":core")
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
implementation "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"
implementation "com.badlogicgames.gdx:gdx-ai:$aiVersion"
implementation "com.badlogicgames.gdx:gdx-bullet:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86_64"
}
}
project(":core") {
apply plugin: "java"
dependencies {
implementation "com.badlogicgames.gdx:gdx:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-ai:$aiVersion"
implementation "io.socket:socket.io-client:1.0.0"
implementation files("build/libs/kryonet-2.21-all.jar")
implementation "com.badlogicgames.gdx:gdx-bullet:$gdxVersion"
}
}
project(":ios") {
apply plugin: "java"
apply plugin: "robovm"
dependencies {
implementation project(":core")
implementation "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
implementation "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
implementation "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
implementation "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios"
implementation "com.badlogicgames.gdx:gdx-bullet:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios"
implementation files("build/libs/kryonet-2.21-all.jar")
}
}
project(":desktop") {
apply plugin: "java"
dependencies {
implementation project(":core")
implementation "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
implementation "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
implementation "com.badlogicgames.gdx:gdx-bullet-platform:1.9.1:natives-desktop"
}
}
project(":html") {
apply plugin: "gwt"
apply plugin: "war"
dependencies {
implementation project(":core")
implementation "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx:$gdxVersion:sources"
implementation "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources"
implementation "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources"
implementation "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources"
implementation "com.badlogicgames.gdx:gdx-ai:$aiVersion:sources"
}
}
tasks.eclipse.doLast {
delete ".project"
}`
Как я могу использовать пулю 1.9.8 для создания ipa с libgdx без ошибки компиляции в libgdx?.