PhoneGap iOS测试应用AdMob插件失效及onDeviceReady函数崩溃求助
解决PhoneGap iOS测试应用中AdMob插件崩溃的问题
嘿,我碰到过类似的情况,你遇到的核心问题大概率是App Store官方PhoneGap测试应用的限制——它是通用的预构建应用,没有包含AdMob插件需要的原生iOS框架依赖,所以当代码执行到插件相关逻辑时,直接导致onDeviceReady函数崩溃,后面的代码自然就无法执行了。下面给你几个可行的解决思路:
1. 放弃官方测试应用,构建自定义测试包
官方PhoneGap测试应用没法添加第三方插件的原生依赖,所以必须自己构建包含插件的测试应用:
- 用PhoneGap CLI创建新项目:
phonegap create myAdMobTest - 进入项目目录:
cd myAdMobTest - 添加iOS平台:
phonegap platform add ios - 安装你的AdMob插件:
phonegap plugin add admob-google-cordova - 构建并部署到iOS设备/模拟器:
phonegap run ios
这样构建出来的应用会把插件的原生代码和依赖框架一起编译进去,不会出现崩溃问题。
2. 添加错误捕获定位具体问题
如果你想先确认崩溃的具体原因,可以在onDeviceReady里用try-catch包裹AdMob相关代码,捕获错误信息:
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { var isAppForeground = true; try { // 这里放你的AdMob初始化代码 admob.banner.config({ id: 'ca-app-pub-3940256099942544/2934735716', // iOS测试广告ID,别用正式ID autoShow: true }); admob.banner.prepare(); } catch (err) { console.error('AdMob初始化错误:', err); alert('崩溃原因: ' + err.message); } // 现在这段代码应该能执行了,用来验证函数是否还崩溃 console.log('onDeviceReady后续代码已执行'); }
3. 检查版本兼容性
确保你的插件版本和PhoneGap/Cordova iOS版本兼容:
- 查看插件的文档,确认支持的Cordova iOS版本范围
- 如果你用的是较旧的PhoneGap版本,可能需要升级到兼容的版本,或者安装插件的旧版本
内容的提问来源于stack exchange,提问作者Sandu Adrian
相关产品推荐
相关产品推荐

