Beispiel #1
0
    /// <summary>
    /// projmods ファイルの設定値を XCode プロジェクト設定へ反映する
    /// </summary>
    /// <param name="path">出力先のパス(ビルド時に指定するパス)</param>
    private static void ProcessXCodeProject(string path)
    {
        XCProject project = new XCProject(path);

        string modsPath = System.IO.Path.Combine(path, "Lobi");

        string[] files = System.IO.Directory.GetFiles(modsPath, "*.projmods", System.IO.SearchOption.AllDirectories);

        foreach (string file in files)
        {
            project.ApplyMod(file);
        }

                #if UNITY_5
        // To need to add a `-fno-objc-arc` flag if building in Unity5.
        string   librariesPath = System.IO.Path.Combine(path, "Libraries/Plugins/iOS");
        string[] filePathList  = System.IO.Directory.GetFiles(librariesPath);

        PBXDictionary <PBXBuildFile> buildFiles = project.buildFiles;
        foreach (KeyValuePair <string, PBXBuildFile> kvp in buildFiles)
        {
            string fileName = kvp.Key;
            foreach (string targetPath in filePathList)
            {
                string extention = System.IO.Path.GetExtension(targetPath);
                if (!(extention == ".m" || extention == ".mm"))
                {
                    continue;
                }

                string targetName = System.IO.Path.GetFileName(targetPath);
                if (!fileName.Contains(targetName))
                {
                    continue;
                }

                PBXBuildFile file = kvp.Value;
                file.AddCompilerFlag("\"-fno-objc-arc\"");
            }
        }
                #endif

        project.Save();
    }