A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

UNITY Xcode

UnityでビルドしたXcodeのcapability設定(Push Notifications)を自動でONにする

投稿日:2017年7月13日 更新日:

前提条件

push通知まわりのいろいろな設定は終わっていて、ビルドするたびにXcodeを編集(Push NotificationsをONに)するのが面倒な人向けです。

Xcode APIの取得

https://bitbucket.org/Unity-Technologies/xcodeapi より、stableブランチのzipをダウンロード。
ダウンロードしたzipを展開します。
Xcodeフォルダ内のPropertiesを削除します。

Unity側の作業

先ほどDLし解凍した中にあるXcodeフォルダを
Project/Editor の中にコピー(ドラッグアンドドロップ)します。
※Editorフォルダが無い場合は作成してください。
Editorフォルダ内でC#スクリプトを作成します。今回は名前を”PostProcessBuild”とします。

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;
public class PostProcessBuild {
	[PostProcessBuild]
	public static void AddCapability(BuildTarget buildTarget, string path)
	{
		if(EditorUserBuildSettings.activeBuildTarget != BuildTarget.iOS)
		{
			return;
		}
		string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
		var proj = new PBXProject();
		proj.ReadFromString(File.ReadAllText(projPath));
		//string target = proj.TargetGuidByName(TargetGroup);
		string target = proj.TargetGuidByName(PBXProject.GetUnityTargetName());
		proj.AddCapability(target, PBXCapabilityType.PushNotifications);
		File.WriteAllText(projPath, proj.WriteToString());
	}
}

unity_project_xcodeapi
Projectのフォルダ構成はこんな感じです。
iOS用のビルドを行い、Xcodeを開いた時に”PushNotifications”がONになっていれば成功です!

InAppPurchaseもONにしたい場合

(省略)
proj.AddCapability(target, PBXCapabilityType.PushNotifications); ←の行の下に
proj.AddCapability(target, PBXCapabilityType.InAppPurchase);  ←これを追加
(省略)

PushNotificationsの箇所にInAppPurchaseの設定も追加すればOKです。

環境など

Unity 5.6.1f1
Xcode 8.3.3
上記環境で構築しました。参考までに。

-UNITY, Xcode
-, , , ,

執筆者:

関連記事

UNITYでゲームを作る その1

以前のエントリでcocos2d-xでゲームを作るとして進めてましたがUNITYに乗り換える事にしました。(といいつつ、正直まだ迷っています。cocos2d-xのガワアプリのガワはほぼ完成してたので。) …

Unity AWS SDKを使って、AWS SNSでPush通知(APNs,FCM)をおくる

AWS Mobile SDK for Unityのサンプル SNSExample を使ってPush通知を登録&送信(AWS SNSにエンドポイント登録して、Publish to endpoint)する …

iPhone6SをiOS11にしたらXcodeで実機確認できなくなった場合の対処

iPhone6SをiOS11にアップデートしました。 Xcodeで開発中のアプリをいつも通り実機確認しようとしたところ、 最新版のiPhone6SでiOS11は対応してないよという旨のメッセージが。。 …