Unity-XCode 구축 후 설정 및 애플리케이션 이름 로컬화 자동화
환경
오프닝
이미 나온 정보지만 개인 메모도 겸한다.
유니티 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.csusing 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()
을 볼 수 있습니다.
응용 프로그램 이름 (응용 프로그램 코드에 표시된 이름) 의 로컬화 (완전 자동화에 대해 계속 조사 중!)
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.csusing 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()
을 볼 수 있습니다.
응용 프로그램 이름 (응용 프로그램 코드에 표시된 이름) 의 로컬화 (완전 자동화에 대해 계속 조사 중!)
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 ());
}
XCodeEditor-for-Unity(monry)
주의사항
XCodeEditor-for-Unity(dcariola)
이 플러그인의 결론은 "Variant Group"이 지원되지 않기 때문에 이번 대응은 원래 진행할 수 없다는 것이다.
단계
위의 플러그인을 제거하고
proj.SetBuildProperty()
아래에 놓습니다.이후 여기 코드를 참고하여 설치했지만 내 환경에서는 할 수 없었다.
임시 응답
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 ());
Assets/Editor
파일이 생성되므로 PBXVariantGroup
를 선택하고 InfoPlist.strings
를 누릅니다.InfoPlist.strings
Localize...
(일본 응용 프로그램 이름)를 일본어로 변경합니다.참고 자료
Reference
이 문제에 관하여(Unity-XCode 구축 후 설정 및 애플리케이션 이름 로컬화 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shockyeah/items/de525d2d94691d45b651텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)