把cocos2dx的游戏打包成dylib,实现动态更新

本文介绍了如何将cocos2dx游戏打包成dylib以实现动态更新。通过创建动态库,游戏代码被抽离,外壳程序负责加载和运行库,允许随时更新游戏功能和UI。文章详细阐述了xcode的配置步骤,包括修改规格文件、创建工程模板、设置目标和参数等,以及编译动态库时需要注意的文件选择和链接库设置。
摘要由CSDN通过智能技术生成

基于运营的需要,我们的游戏需要动态更新,但是已经用cocos2dx做得差不多了,再改成lua时间不允许,所以实现另一种更新方式,就是使用动态库。

这种方法的核心思路就是把整个游戏代码抽成一个动态库,然后我们把游戏提取出来一个外壳,专门负责加载更新及运行这个库,这样就可以达到随时更新任何功能模块或者UI的目的,因为整个游戏的代码都在这个动态库里。

注意:此种方式只在非appstore上使用

我将以一个游戏为例,在这走一次全部过程。希望对大家有所帮助

1.设置xcode。因为xcode不支持在ios上使用动态库,所以需要做一些操作。

我的xcode版本是5.0

找到两个目录,最好用两个finder窗口分别打开:

目录一:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/ 

目录二:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/ 

(这里只说iOS真机版,模拟器版类似,

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform)

把目录一下的

iPhoneOSPackageTypes.xcspec和iPhoneOSProductTypes.xcspec

拷贝到桌面(或者其它有写权限的地方),分别用xcode打开。

再用xcode打开目录二下的MacOSX Package Types.xcspec和MacOSX Product Types.xcspec

把MacOSX Package Types.xcspec中Identifier为com.apple.package-type.mach-o-dylib的item拖到iPhoneOSPackageTypes.xcspec,令iPhoneOSPackageTypes.xcspec变成


把MacOSX Product Types.xcspec中Identifier为com.apple.product-type.library.dynamic的item拖到iPhoneOSProductTypes.xcspec,令iPhoneOSProductTypes.xcspec变成:


保存修改,把iPhoneOSPackageTypes.xcspec和iPhoneOSProductTypes.xcspec拷贝回去目录一,此时会因为没有写权限而提示需要鉴定,输入密码即可。


创建工程模板:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Framework & Library/Cocoa Touch Static Library.xctemplate

把以上整个文件夹复制到桌面,文件夹改名为Cocoa Touch Dynamic Library.xctemplate,用xcode打开里面的TemplateInfo.plist,修改三个地方:


保存,然后把Cocoa Touch Dynamic Library.xctemplate拷贝回去

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Framework & Library/

这时又需要鉴定。重启

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值