퓨즈[Fusetools] 문서[Docs] 번역

  1. Home
  2. 퓨즈[Fusetools] 문서[Docs] 번역
  3. 전체 레퍼런스
  4. 우노 프로젝트(.unoproj) 레퍼런스

우노 프로젝트(.unoproj) 레퍼런스

Uno Projects (.unoproj)

Uno는 퓨즈의 핵심인 C#의 포터블, 경량 버전이며 iOS 및 Android 용 네이티브 앱을 내보낼 수 있습니다. Uno에 대한 자세한 내용은 Native Interop 섹션을 참조하십시오.

퓨즈 프로젝트는 기본적으로 퓨즈 라이브러리를 참조하는 Uno 프로젝트입니다. 퓨즈 라이브러리는 Uno 언어로 작성되었습니다.

Uno 프로젝트 파일(.unoproj)은 다음과 같은 기본 구조를 가진 일반 JSON 텍스트 파일입니다.

1
2
3
4
5
6
7
8
9
{
    "Packages": [
        "Fuse",
        "FuseJS"
    ],
    "Includes": [
        "*"
    ]
}

Uno 프로젝트 파일은 프로젝트가 의존하는 것, 컴포넌트 및 iOS 또는 Android의 기본 앱으로 선택적으로 패키지하는 방법을 지정하는 곳입니다.

Uno 프로젝트는 다른 프로젝트에서 사용하기 위한 애셋 및 컴포넌트로 구성된 라이브러리 프로젝트이거나 실제 앱 프로젝트일 수 있습니다. 프로젝트에 App 클래스가 있으면 프로젝트가 앱 프로젝트임을 나타냅니다.

패키지(Packages)

Packages 섹션은 프로젝트에서 참조할 패키지 목록입니다. 패키지는 사전 컴파일된 Uno 프로젝트로서 Uno 패키지 관리자에 정식 패키지 이름으로 등록되어 있습니다.

퓨즈 프로젝트를 만들려면 일반적으로 최소한 Fuse 및 FuseJS 패키지를 참조해야 합니다. 하지만 프로젝트를 생성할 때 기본적으로 표준 패키지 세트가 포함되어 있으니 신경쓰지 않아도 됩니다.

참조한 패키지가 앱에 필요한 권한에 영향을 미칠 수 있습니다.

1
2
3
4
5
6
{
    "Packages": [
        "Fuse",
        "FuseJS"
    ]
}

매크로(Macros)

Uno 프로젝트 형식은 기본 매크로 시스템을 지원합니다. 이 기능은 제목 및 버전과 같은 많은 최상위 속성을 구현하는 데 사용됩니다.

예를 들어 다음과 같이 Version 속성을 설정할 수 있습니다:

1
2
3
{
    "Version": "0.9.4"
}

기본적으로 Android.VersionName과 iOS.BundleVersion은 다음과 같이 설정됩니다:

1
2
3
4
5
6
7
8
{
    "Android": {
        "VersionName": "$(Version)"
    },
    "iOS": {
        "BundleVersion": "$(Version)"
    }
}

그러면 해당 속성이 최상위 Version 속성을 상속하게 됩니다.

프로젝트(Projects)

Projects 섹션은 선택 사항이며, 로컬 파일 시스템에서 다른 Uno 프로젝트를 참조할 수 있습니다. 다른 .unoproj 파일에 대한 상대 경로를 지정합니다.

1
2
3
4
5
{
    "Projects": [
        "../../SomeOtherProject/SomeOtherProject.unoproj"
    ]
}

포함 및 제외(Includes and Excludes)

Includes 및 Excludes 속성을 사용하면 프로젝트에 포함할 파일을 제어할 수 있습니다. 그것들은 아래의 스니펫(snippet)과 같이 두개의 문자열 배열입니다:

1
2
3
4
5
6
7
8
9
10
11
12
{
    "Includes": [
        "*.ux",
        "js/**/*.js",
        "SomeUnoClass.uno:Source",
        "ForeignCode.java:Java:android"
    ],
    "Excludes": [
        "js/ExcludeThisFilePlease.js",
        "node_modules/"
    ]
}

include/exclude 항목은 다음 양식 중 하나를 사용할 수 있습니다:

글롭패턴(GlobPattern)

이 문서에서 자세히 설명하는 글롭 패턴.

1
2
3
4
5
6
7
{
    "Includes": [
        "*.ux",
        "js/**/*.js",
        "Foo.uno"
    ]
}

다음 glob 기능이 지원됩니다:

  • 괄호 확장
  • 확장된 glob 매칭
  • Globstar 매칭

/ 를 포함하지 않는 패턴은 재귀적으로 매칭됩니다:

* => 모든 파일과 매칭합니다.
*.foo => 이름이 .foo로 끝나는 모든 파일과 매칭합니다.
*.+(bar|foo) => 이름이 .bar 또는 .foo로 끝나는 모든 파일과 매칭합니다.
foobar => foobar라는 이름의 모든 파일과 매칭합니다.

재귀를 비활성화하려면 / 또는 ./ 를 추가하십시오:

/*.png => 프로젝트 디렉토리에서 모든 PNG 파일을 찾습니다.
Foo/*.png => Foo 디렉토리에서 모든 PNG 파일을 찾습니다.

명시적인 재귀를 위해 globstar(**)를 사용하십시오:

Foo/**/*.uno => Foo 디렉토리와 하위 디렉토리에 있는 모든 Uno 파일과 매칭합니다.

FileName:Type

Uno 컴파일러가 단일 파일을 포함하여 특정 유형으로 해석하도록 지시합니다.

1
2
3
4
5
{
    "Includes": [
        "MainView.ux:UX"
    ]
}

FileName:Type:Condition

특정 유형의 파일 외에도 파일 포함 여부를 결정하는 조건을 지정할 수 있습니다.

1
2
3
4
5
6
7
{
    "Includes": [
        "AndroidOnly.java:Java:Android",
        "iOSOnly.hh:ObjCHeader:iOS",
        "iOSOnly.mm:ObjCSource:iOS"
    ]
}

포함 가능한 유형

  • UX – UX 마크업 파일을 선언합니다 (확장명이 .ux 인 파일을 추가할 때 자동으로 설정됨).
  • Source – Uno 소스 파일 (확장자가 .uno 인 파일을 추가 할 때 자동으로 설정됨).
  • Bundle – 앱 번들에 포함되어 런타임에 액세스 할 수 있는 파일입니다. 예를 들어 PNG 나 JPEG 같은 이미지 파일 또는 JSON이나 XML 같은 데이터 파일일 수 있습니다. 또한 독립형 JavaScript 파일을 필요로 할 때 필요합니다.
  • CSource – C 소스 파일.
  • CHeader – C 헤더 파일.
  • ObjCSource – Objective-C 소스 파일.
  • ObjCHeader – Objective-C 헤더 파일.
  • Java – .java 파일로 끝나는 Java 코드 파일
  • Extensions – UXL 확장자를 가진 파일.
  • File – 파일을 프로젝트의 필수 부분으로 선언하는 데 사용되지만 앱에서 컴파일하거나 번들링 할 필요가 없는 파일입니다.

모든 속성

링크로 대신합니다: https://www.fusetools.com/docs/basics/uno-projects#all-properties

Was this article helpful to you? Yes No

How can we help?