下面说下cocos2dx VS 真机调试的时候遇到的一些问题的总结,方便大家更快的查找问题,下面直接说问题吧:

题1:真机调试的时候,闪退。

   作为生成ipa的例子,我使用cocos2dx自带的范例“simpleGame”的例子。所以程序肯定是不会有错误的。但是在真机调试的时候,程序可以安装到真机,但是装好的程序总是出现闪退。最后点击左上角的“showthe 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 `]'


提示信息如图:



解决方法:检查runscript里面的脚本是否有误。我检查的结果是,里面有空格的地方,我没有加空格。正确的脚本如图:


正确的脚本:

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:要注意的问题

在移植cocos2dx的例子的时候,会有两个target,一个是生成程序的,一个是cocos2dx.xcodeproj的。必须注意的是,runscript的脚本只需要放在程序的target里面,不能放在cocos2dx.xcodeproj里面。如图:

成功后的截图:

ipa文件