最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
cocos2dx VS 真机调试
本文将总结在使用 Cocos2d-x 结合 VS 进行真机调试时遇到的一些常见问题,以方便大家更快地查找和解决问题。
问题 1:真机调试时程序闪退
作为生成 IPA 的示例,我们使用 Cocos2d-x 自带的范例“SimpleGame”。此范例程序本身并无错误,但在真机调试时,程序虽能成功安装到真机上,却总是出现闪退的情况。
点击左上角的“Show the Log Navigator”,发现有两条警告信息,这表明 Run Script 未成功执行。具体的提示信息如下:
/Users/yons/Library/Developer/Xcode/DerivedData/SimpleGame-bwydcazyhntqhqbajqhzzjplgfnz/Build/Intermediates/cocos2dx.build/Release-iphoneos/cocos2dx.build/Script-E4EA5F9E188841D60013FBD2.sh: line 3: [: iphoneos: unary operator expected
/Users/yons/Library/Developer/Xcode/DerivedData/SimpleGame-bwydcazyhntqhqbajqhzzjplgfnz/Build/Intermediates/cocos2dx.build/Release-iphoneos/cocos2dx.build/Script-E4EA5F9E188841D60013FBD2.sh: line 3: [: missing `]'
解决方法
需要检查 Run Script 中的脚本是否存在错误。经检查发现,脚本中存在空格使用不当的问题。正确的脚本如下:
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
问题 2:如何生成 IPA 文件
当程序能正常运行且可在真机上调试时,我们可能需要生成独立的 IPA 安装包。可以通过脚本程序将 IPA 安装包打包并放置在桌面,具体脚本如下:
if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then
mkdir -p "${BUILT_PRODUCTS_DIR}/Payload"
cd "${BUILT_PRODUCTS_DIR}/Payload" ; ln -s "../${WRAPPER_NAME}" .
cd "${BUILT_PRODUCTS_DIR}" ; zip -r ~/Desktop/${PROJECT_NAME}.ipa Payload > /dev/null
rm -fr "${BUILT_PRODUCTS_DIR}/Payload"
fi
问题 3:移植 Cocos2d-x 示例时的注意事项
在移植 Cocos2d-x 的示例时,项目中会有两个 Target,一个用于生成程序,另一个是 cocos2dx.xcodeproj。需要特别注意的是,Run Script 的脚本只需放在生成程序的 Target 中,而不能放在 cocos2dx.xcodeproj 里。
当所有步骤都正确完成后,就能成功生成 IPA 文件。