コード例 #1
0
    public static void BuildXCode(string channelName, bool isTest)
    {
        BuildTarget buildTarget = BuildTarget.iOS;

        PackageUtils.CopyAssetBundlesToStreamingAssets(buildTarget, channelName);
        LaunchAssetBundleServer.WriteAssetBundleServerURL(channelName);

        string buildFolder = Path.Combine(System.Environment.CurrentDirectory, XCodeOutputPath);

        buildFolder = Path.Combine(buildFolder, channelName);
        GameUtility.CheckDirAndCreateWhenNeeded(buildFolder);

        string iconPath = "Assets/Editor/icon/ios/{0}/{1}.png";

        string[]         iconSizes = new string[] { "180", "167", "152", "144", "120", "114", "76", "72", "57" };
        List <Texture2D> iconList  = new List <Texture2D>();

        for (int i = 0; i < iconSizes.Length; i++)
        {
            Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath(string.Format(iconPath, channelName, iconSizes[i]), typeof(Texture2D));
            iconList.Add(texture);
        }
        PlayerSettings.SetIconsForTargetGroup(BuildTargetGroup.iOS, iconList.ToArray());

        BaseChannel channel = ChannelManager.instance.CreateChannel(channelName);

        PlayerSettings.applicationIdentifier = channel.GetBundleID();
        PlayerSettings.productName           = channel.GetPackageName();
        PackageUtils.CheckAndAddSymbolIfNeeded(buildTarget, channelName);
        BuildPipeline.BuildPlayer(GetBuildScenes(), buildFolder, buildTarget, BuildOptions.None);
    }
コード例 #2
0
    public static void BuildAndroid(string channelName)
    {
        BuildTarget buildTarget = BuildTarget.Android;

        PackageUtils.CopyAssetBundlesToStreamingAssets(buildTarget, channelName);
        BaseChannel channel = ChannelManager.instance.CreateChannel(channelName);

        if (channel.HasAndroidSDK())
        {
            CopyAndroidSDKResources(channelName);
        }
        LaunchAssetBundleServer.WriteAssetBundleServerURL(channelName);

        string buildFolder = Path.Combine(System.Environment.CurrentDirectory, ApkOutputPath);

        GameUtility.CheckDirAndCreateWhenNeeded(buildFolder);
        PlayerSettings.applicationIdentifier = channel.GetBundleID();
        PlayerSettings.productName           = channel.GetPackageName();

        string savePath = null;

        if (channel.IsGooglePlay())
        {
            savePath = Path.Combine(buildFolder, channelName);
            GameUtility.SafeDeleteDir(savePath);
            BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.AcceptExternalModificationsToPlayer);
        }
        else
        {
            savePath = Path.Combine(buildFolder, channel.GetPackageName() + "_" + channelName + "_" + PlayerSettings.bundleVersion + ".apk");
            BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.None);
        }
        Debug.Log(string.Format("Build android player for : {0} done! output :{1}", channelName, savePath));
    }
コード例 #3
0
ファイル: BuildPlayer.cs プロジェクト: xiangry/MyFramework
    public static void BuildAndroid(string channelName, bool isTest)
    {
        BuildTarget buildTarget = BuildTarget.Android;

        PackageUtils.CopyAssetBundlesToStreamingAssets(buildTarget, channelName);
        if (!isTest)
        {
            LaunchAssetBundleServer.ClearAssetBundleServerURL();
        }
        else
        {
            LaunchAssetBundleServer.WriteAssetBundleServerURL();
        }

        BaseChannel channel = ChannelManager.instance.CreateChannel(channelName);

        SetPlayerSetting(channel);

        string savePath = PackageUtils.GetChannelOutputPath(buildTarget, channelName);
        string appName  = channel.GetProductName() + ".apk";

        if (channel.IsGooglePlay())
        {
            savePath = Path.Combine(savePath, "GooglePlay");
            UtilityGame.SafeDeleteDir(savePath);
            BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.AcceptExternalModificationsToPlayer);
        }
        else
        {
            savePath = Path.Combine(savePath, appName);
            BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.None);
        }
        string outputPath = Path.Combine(Application.persistentDataPath, AssetBundleConfig.AssetBundlesFolderName);

        UtilityGame.SafeDeleteDir(outputPath);
        Debug.Log(string.Format("Build android player for : {0} done! output :{1}", channelName, savePath));
    }