引擎升级导致ios编译不过

原项目使用3.11.1,因为热更新不稳定,想要升级到3.15。我没有升级过引擎,所以只是cocos2d-x整体替换。又因为spine和cocosstudio的问题而将editor-support退回到3.11.1版本。在Windows和Android下都编译成功了,但是在ios却编译不过,报错如下:

Undefined symbols for architecture arm64:
“_OPENSSL_init_ssl”, referenced from:
_lws_context_init_ssl_library in libcocos2d iOS.a(ssl.c.o)
“_spSkinnedMeshAttachment_updateUVs”, referenced from:
_spSkeletonJson_readSkeletonData in libcocos2d iOS.a(SkeletonJson.o)
“_spSkinnedMeshAttachment_computeWorldVertices”, referenced from:
spine::SkeletonRenderer::drawSkeleton(cocos2d::Mat4 const&, unsigned int) in libcocos2d iOS.a(SkeletonRenderer.o)
spine::SkeletonRenderer::getBoundingBox() const in libcocos2d iOS.a(SkeletonRenderer.o)
“_spSkinnedMeshAttachment_create”, referenced from:
__spAtlasAttachmentLoader_newAttachment in libcocos2d iOS.a(AtlasAttachmentLoader.o)
“_OPENSSL_init_crypto”, referenced from:
_lws_context_init_ssl_library in libcocos2d iOS.a(ssl.c.o)
“_SSL_CTX_set_options”, referenced from:
_lws_context_init_client_ssl in libcocos2d iOS.a(ssl-client.c.o)
“spine::PolygonBatch::add(cocos2d::Texture2D const*, float const*, float const*, int, int const*, int, cocos2d::Color4B*)”, referenced from:
spine::SkeletonRenderer::drawSkeleton(cocos2d::Mat4 const&, unsigned int) in libcocos2d iOS.a(SkeletonRenderer.o)
“spine::PolygonBatch::flush()”, referenced from:
spine::SkeletonRenderer::drawSkeleton(cocos2d::Mat4 const&, unsigned int) in libcocos2d iOS.a(SkeletonRenderer.o)
“_TLS_client_method”, referenced from:
_lws_context_init_client_ssl in libcocos2d iOS.a(ssl-client.c.o)
“spine::PolygonBatch::createWithCapacity(long)”, referenced from:
spine::SkeletonRenderer::initialize() in libcocos2d iOS.a(SkeletonRenderer.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请问该如何解决,或者只是升级热更新的话我应该怎样操作?
@minggo 麻烦了。
补充下xcode版本8.2.1

editor-support和引擎是有版本对应关系的,这样会有问题吧。cocostudio可能因为flatbuffer升级会有问题,但是spine为什么要退回去呢?另外,第三方库是不是没有更新啊,怎么会有openssl的问题。

你把spine退回去了要在xcode里面检查一下spine相关文件的引用,新版本用的spine有可能文件和老版本的不一样,要自己添加删除

现有骨骼动画都是2.几的版本,用新版的直接会直接崩溃,在覆盖旧版cocos2d-x的时候,我看到external文件夹下多出了一些文件,其中就包括openssl,是不是引擎团队换添加方式了还是怎样?
现在主要的问题是3.15版本基本不能用cocos studio,而我又需要3.15的热更新,请问我该怎么做呢?

spine的问题好解决,我们动画不多,大不了升级就是了,关键是openssl的问题,我尝试了加searchpath,改变linker flag,
加link binary with libraries 都不管用……

是的。因为websockets也要用ssl,所以把openssl抽出来了。这部分不要动。

这部分我没动,我的工程文件还是老版本的,那么请问我应该做些什么才能让它编译通过呢?

你更改了external目录了吧?否则引擎的xcode工程会自动链接正确的openssl。
另外,cocos studio具体是因为什么兼容性问题呢?好多人遇到问题,我想修复一下,虽然cocos studio项目已经取消了。

如果我用3.15新建工程,然后把flat buffer和cocos studio都替换成以前的版本,可否正常使用呢?
如果不能确定的话,可否教我如何将老项目的热更新升级呢?牵扯太多,怕我自己胡乱替换会导致什么问题

可以的,如果版本没有差异很大的话。另外,具体是什么问题?引擎也用了cocos studio生成出来的文件,没有问题啊。

我应该没改,我确认一下。
我用的cocos studio 3.10,使用自己的ttf字体,有些文本不会显示,有些又能显示,换回默认字体后一切正常。没有继续测试下去,暂时就发现这个。

行,那我试试

我们是老项目,动画太多了,不好重新做,请问有什么其他的方法解决这个问题么?

Undefined symbols for architecture armv7:
“_spSkinnedMeshAttachment_updateUVs”, referenced from:
_spSkeletonJson_readSkeletonData in libcocos2d iOS.a(SkeletonJson.o)
“_spSkinnedMeshAttachment_computeWorldVertices”, referenced from:
spine::SkeletonRenderer::drawSkeleton(cocos2d::Mat4 const&, unsigned int) in libcocos2d iOS.a(SkeletonRenderer.o)
spine::SkeletonRenderer::getBoundingBox() const in libcocos2d iOS.a(SkeletonRenderer.o)
“_spSkinnedMeshAttachment_create”, referenced from:
__spAtlasAttachmentLoader_newAttachment in libcocos2d iOS.a(AtlasAttachmentLoader.o)
“spine::PolygonBatch::add(cocos2d::Texture2D const*, float const*, float const*, int, int const*, int, cocos2d::Color4B*)”, referenced from:
spine::SkeletonRenderer::drawSkeleton(cocos2d::Mat4 const&, unsigned int) in libcocos2d iOS.a(SkeletonRenderer.o)
“spine::PolygonBatch::flush()”, referenced from:
spine::SkeletonRenderer::drawSkeleton(cocos2d::Mat4 const&, unsigned int) in libcocos2d iOS.a(SkeletonRenderer.o)

请问怎么解决的啊。我也遇到了