• このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

追記(2014/09/22): iOS SDK v.1.2.0のiOS 5での不具合を修正しました。

iOS 8向けのGrowth PushのSDKを公開しました。

変更の内容

iOS 8で非推奨となったメソッドを、新しいメソッドに置換し、Xcode 6向けに新たにframeworkファイルをビルドしなおしました。

ご利用の皆様の対応について

Xcode 6でiOS8向けにアプリをビルドする場合に、最新のSDKへの入れ替えが必要です。

これまでのSDKでは、Xcode 6でiOS8向けにアプリをビルドする際に、プッシュ通知のデバイストークンが取得できなくなります。しかし、Xcode 5でビルドした旧SDK入りのアプリが、iOS端末のiOS 8へのアップデートにより使えなくなるということはないと確認しております。

新しいSDKのダウンロードの方法

ダウンロードページからダウンロードしてください。

(9/22現時点での最新バージョンは、v.1.2.1となります。→ https://github.com/SIROK/growthpush-ios/archive/1.2.1-rc1.zip )

GitHubのリポジトリでも公開しています。

SDKとXcode、iOSの対応表

iOS SDK v.1.2.0とv.1.1.4のXcode、iOSの対応バージョンは下記となっています。

SDK Xcode バージョン iOSバージョン 利用可能か
旧SDK(1.1.4) Xcode 5 iOS 7 OK
iOS 8 OK
Xcode 6 iOS 7 OK
iOS 8 NG
新SDK(1.2.0) Xcode 5 iOS 7 NG(ビルド不可)
iOS 8 NG(ビルド不可)
Xcode 6 iOS 7 OK
iOS 8 OK

以前のSDKは、最新のXcode 6でビルドすることはできますが、端末で正常に動作せず、旧バージョンのXcode 5でビルドすればiOS8でも今まで通りご利用いただけます。

新しいSDKは、最新のXcode 6で正常に動作しますが、旧バージョンのXcode 5ではビルドできずご利用いただくことができません。

検証コード

次のような導入コードで検証しています。

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [EasyGrowthPush setApplicationId:1070 secret:@"BhcrsJHoEvWT85437EnSJ1COUhflEg1E" environment:kGrowthPushEnvironment debug:YES];
    [_window makeKeyAndVisible];
    return YES;
}

新SDKとXcode 5の組み合わせはビルド不可

新しいSDKは、内部にiOS8のための新しいシンボルを含んでいるため、Xcode5ではビルドすることができません。

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_UIUserNotificationSettings", referenced from:
      objc-class-ref in GrowthPush(GrowthPush.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

そのため、Xcode 5を継続して利用する場合は、SDKのv.1.1.4を利用していただく形になります。

旧SDKとXcode 6とiOS 8の組み合わせはデバイストークンの取得不可

iOS 8向けにビルドすると、今までのregisterForRemoteNotificationTypes:が正常に動作しなくなります。

registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later.

したがって、Xcode 6を利用する場合は、SDKのv.1.2.0以降を利用していただく必要があります。

Unity、Cocos2d-xをご利用の皆様

Unity SDK、Cocos2d-x SDKは現在アップデートをされておりませんが、Xcode 6環境を利用する場合は、プロジェクト内のGrowthPush.frameworkを最新のv.1.2.0に差し替えていただくことで、iOS 8への対応ができます。

追記(2015/05/25): Unity/Cocos2d-xについても最新のバージョンで、iOS 8への対応をしております。ダウンロードのページから最新のSDKをご確認ください。

まとめ

お使いの開発環境がXcode5の場合は、旧バージョンのSDKを引き続きご利用いただくことができます。

お使いの開発環境がXcode6の場合は、新バージョンのSDKのご利用が必要です。