开发环境:
MacOS
环境配置
- 下载cocos2dx,我下载的是 cocos2d-x-3.17.2
- 命令行切换到 cocos2d-x-3.17.2 目录,执行 ./setup.py
- 之后,需要执行source命令,让配置生效。如果用的bash,需要在~目录下执行
source .bash_profile
如果是zsh,就执行:
source .zshrc
如果自己的配置文件命名成其他了,source一下就好。
4. 选择任意目录,执行如下命令,创建工程:
cocos new hellcpp -p org.cocos2dx.hellocpp -l cpp -d .
这里的hellocpp是工程名, org.cocos2dx.hellocpp 在iOS工程中,是 bundle identifier,在Android是包名,这里的 hellocpp 和 org.cocos2dx.hellocpp 需要根据自己的项目进行配置。-d . 表示在当前目录创建。
5. 打开 proj.ios_mac 目录,双击 hellcpp.xcodeproj 打开iOS工程。
6. 选择模拟器,运行,此时会报错:
Argument value 10880 is outside the valide range(0, 255)
打开 btVector3.h ,把
#define BT_SHUFFLE(x,y,z,w) ((w)<<6 | (z)<<4 | (y)<<2 | (x))
替换成
#define BT_SHUFFLE(x, y, z, w) (((w) << 6 | (z) << 4 | (y) << 2 | (x)) & 0xff)
- 重新运行,仍然报错:
libcocos2d iOS.a, building for iOS Simulator-arm64 but attempting to link with file built for iOS Simulator-x86_64
实际上,是因为模拟器是x86_64架构的,但是构建的时候没有支持该架构。因此, 在bulidseting 中 将 VALID_ARCHS中加一个 x86_64 就行了。
注意:
网上搜相关内容的时候,有人说在 Excluded Architectures 添加 arm64; 这样操作有问题,无法运行,因为这是在排除指定的架构。 - 记得在 General 中配置version,否则会报错:
The application’s Info.plist does not contain CFBundleShortVersionString.
Ensure your bundle contains a CFBundleShortVersionString.
参考资料:
https://forum.cocos.org/t/topic/100425
https://discuss.cocos2d-x.org/t/xcode-11-ios-13-cocos-not-running/46825/3
https://stackoverflow.com/questions/58064487/xcode-11-cocos2dx-compilation-problem-argument-value-10880-is-outside-the-vali