ionic-framework - 为什么 AdMob Free 在 iOS 模拟器中使我的应用崩溃?
问题描述
我正在尝试将 adMobFree 添加到全新的 Ionic 4 项目中。
我一遍又一遍地尝试这样做,使用不同的方法并遵循不同的教程,结果总是一样的:应用程序拒绝在 iOS 模拟器中运行。它只是停在初始屏幕上。
安装步骤
ionic cordova platform add ios
ionic cordova platform add android
ionic cordova plugin add cordova-plugin-admob-free --save --variable ADMOB_APP_ID="ca-app-pub-12345678901234567890"
npm install @ionic-native/admob-free
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { AdMobFree } from '@ionic-native/admob-free/ngx';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
StatusBar,
SplashScreen,
AdMobFree,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule { }
ads.service.ts
import { Injectable } from '@angular/core';
import { Platform } from '@ionic/angular';
import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free/ngx';
@Injectable({
providedIn: 'root'
})
export class AdsService {
bannerId: 'ca-app-pub-12345678901234567890';
constructor(
public platform: Platform,
private admobFree: AdMobFree
) { }
showBanner() {
this.platform
.ready()
.then(() => {
const bannerConfig: AdMobFreeBannerConfig = {
id: this.bannerId,
isTesting: false,
autoShow: false
};
this.admobFree.banner.config(bannerConfig);
this.admobFree.banner
.prepare()
.then(() => {
this.admobFree.banner.show();
})
.catch(e => console.log(e));
})
.catch(e => console.log(e));
}
}
主页.ts
import { Component } from '@angular/core';
import { AdsService } from '../services/ads.service';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(
public ads: AdsService
) {
this.ads.showBanner();
}
}
我究竟做错了什么?
解决方案
这个SO答案是解决方案
https://stackoverflow.com/a/59276508/2101328
对于带有 Admob 插件的 Ionic App(我只在 Ioniv V3 中尝试过),您可以将其添加到平台 ios 下的 ./config.xml 中,以便在每次构建时自动填充 app-name-info.plist 文件。
<platform name="ios">
<config-file parent="GADApplicationIdentifier" target="*-Info.plist">
<string>ca-app-pub-12345/12345</string>
</config-file>
<config-file parent="GADIsAdManagerApp" target="*-Info.plist">
<true />
</config-file>
... (other lines) ...
</platform>
推荐阅读
- excel - 在文件夹中的多个 Excel 工作表上附加单个(和多个)工作表
- android - 如何使用数组改造解析 JSON 对象
- java - 在android studio中为具有spring security的spring boot服务器端创建登录名
- php - 我可以在mysql中使用if语句吗?
- database - 在 vertica 数据库中加载大量数据(100 gb)的最快方法是什么?
- json - curl json输出键值到带有jq或grep的变量
- php - 带有变量的来自和到 PHP 的 Guzzle POST 请求
- javascript - 我正在尝试使用 client.js 进行 trello 身份验证。无论我使用什么网址,我都会收到无效的 return_url
- ios - 是否允许简单的 GPS 应用程序使用 Car play 框架?
- amazon-cloudfront - AWS CloudFront 将新域添加到分发并设置新证书