Unity-XCode 구축 후 설정 및 애플리케이션 이름 로컬화 자동화

12950 단어 XcodeUnityC#

환경

  • Unity 5.3.2f1
  • Unity 5.3.2p1
  • Unity 5.3.2p2
  • XCode 7.3.1
  • Mac El Capitan 10.11.5
  • Unity 초보자
  • 오프닝


    이미 나온 정보지만 개인 메모도 겸한다.
    유니티 5.3.2에 대한 오류도 다소 관련이 있으니 참고가 됐으면 좋겠습니다.

    Framework


    Unity에서 XCode 프로젝트를 내보낸 후'구축 설정'과'프레임'을 추가하는 것은 번거롭죠.대부분의 경우 XCode 프레임워크를 사용할 때CocoaPods를 사용하지만 Unity Cloud Build와 협력할 수 없기 때문에 이번에는 다른 방법을 채택했다.
    방법을 아는 사람이 있다면
    Unity5부터 프레임워크의 배치가 개선된 것 같다. Assets/Plugin/iOS/ 부하에 설치하는 등 XCode를 위한 구축 출력을 할 때 XCode 프로젝트의 Framework에 추가하면 된다.
    예) UnityAds를 추가할 때

    Build Settings


    다음은 XCode의 구축 설정입니다.
    그렇다면 표준*.framework만 이용하면 된다.하지만 내 환경UnityEditor.iOS.Xcode.PBXProject의namespace는 찾을 수 없는 현상에 빠졌다.
    결과부품 5.3.2p1 패치 필요였기 때문에 여기패치로 해결했습니다...!!
    이번에 XCode에서 구축한 프로젝트는 튀어나오는 과정에서 전진할 수 없는 문제에 부딪혔다.Unity 5.3.2p2 발매노트 구글 리메이크 y··· 해보면 730441 어쨌든 맞는 버그가 있어 Unity 5.3.2p2 패치를 했는데 이 현상이 해결됐어요.
    탈선했지만 본론으로 돌아와 코드로 설명하다.UnityEditor.iOS.Xcode 아래에서 다음 파일을 만듭니다.클래스 이름은 선택할 수 있습니다.Assets/Editor/는 XCode 구축 후 즉시 호출되는 이벤트입니다.
    XCodeSetting.cs
    using UnityEngine;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEditor;
    using UnityEditor.Callbacks;
    using UnityEditor.iOS.Xcode;
    
    /// <summary>
    /// XCodeビルド出力後に呼び出されるメソッド
    /// XCode側で別途設定が必要な場合は、こちらで対応
    /// </summary>
    public class XCodeSetting
    {
        [PostProcessBuild]
        public static void OnPostprocessBuild (BuildTarget buildTarget, string path)
        {
            // iOS以外は未処理
            if (buildTarget != BuildTarget.iOS) {
                return;
            }
    
            // プロジェクトファイル
            string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
            // 後々XCodeEditor-for-Unity利用するためフルパス
            UnityEditor.iOS.Xcode.PBXProject proj = new UnityEditor.iOS.Xcode.PBXProject ();
            proj.ReadFromFile (projPath);
    
            string target = proj.TargetGuidByName ("Unity-iPhone");
    
            // BuildSettings
            // ENABLE_BITCODE OFF
            proj.SetBuildProperty (target, "ENABLE_BITCODE", "NO");
    
            // 設定を保存
            File.WriteAllText (projPath, proj.WriteToString ());
    
        }
    
    XCode에서 지정한 이름OnPostprocessBuild()을 볼 수 있습니다.

    응용 프로그램 이름 (응용 프로그램 코드에 표시된 이름) 의 로컬화 (완전 자동화에 대해 계속 조사 중!)

  • 사용하는 것

  • XCodeEditor-for-Unity(monry)
  • MiniJSON
  • 의욕 조금

  • 주의사항

  • XCodeEditor-for-Unity(dcariola)
    이 플러그인의 결론은 "Variant Group"이 지원되지 않기 때문에 이번 대응은 원래 진행할 수 없다는 것이다.

  • 단계
    위의 플러그인을 제거하고 proj.SetBuildProperty() 아래에 놓습니다.
    이후 여기 코드를 참고하여 설치했지만 내 환경에서는 할 수 없었다.
  • 섹션을 추가하지 않고 XCode에서 로컬화할 파일로 인식하지 않는 방법단지 개별적인 서류일 뿐이다.링크처 기사가 2년 전이라 아마 XCode 버전 업그레이드로 못 했을 거예요.

  • 임시 응답
  • 상기 상황으로 인해 아직 자동화가 이루어지지 않았기 때문에 다음과 같은 내용에 잠시 대응한다
  • XCodeSetting.cs
        public static void OnPostprocessBuild (BuildTarget buildTarget, string path)
        {
    
    〜 略 〜
    
            string plistFile = "InfoPlist.strings";
    
            // XCodeプロジェクトルートへ実体生成
            StreamWriter w = new StreamWriter (Path.Combine (path, plistFile), false);
            w.WriteLine (string.Format ("CFBundleDisplayName = \"{0}\";", "hogehoge"));
            w.WriteLine (string.Format ("//CFBundleDisplayName = \"{0}\";", "ほげほげ"));
            w.Close ();
    
            //// 参照追加(XCodeプロジェクト上で見れるようにする)
            pbxproj.AddFileToBuild (target, pbxproj.AddFile (Path.Combine (path, plistFile), plistFile, PBXSourceTree.Source));
    
            // 設定保存
            File.WriteAllText (projPath, pbxproj.WriteToString ());
    
  • XCode 항목을 열면 항목 바로 아래에 Assets/Editor 파일이 생성되므로 PBXVariantGroup 를 선택하고 InfoPlist.strings 를 누릅니다.

  • 다음 창 누르기InfoPlist.strings
  • 파일을 로컬화하기 위해 일본어의 로컬화를 추가하고Localize...(일본 응용 프로그램 이름)를 일본어로 변경합니다.
  • 완전 자동화는 아니지만 최선을 다하고 있습니다...
  • 참고 자료

  • http://qiita.com/dancingpandor/items/cc497adb9f930d42ffd3
  • http://qiita.com/monry/items/6f6507e7271caa3af42d
  • Unity5.3.2의 오류 관련
  • https://issuetracker.unity3d.com/issues/ios-monodevelop-unityeditor-dot-ios-dot-xcode-namespace-isnt-recognised-in-monodevelop
  • https://issuetracker.unity3d.com/issues/unity-hangs-when-selecting-objects-in-the-scene-view
  • 야, 치타 정말 좋은 물건이네. 안녕, 안녕.

    좋은 웹페이지 즐겨찾기