tuist/fixtures
ldindu 4a8bfd826e
Appclip support (#1854)
* Introduce product type appClips

* Add embed AppClips build phase

* Add appclips to be executable

* Apply swift formatting

* Add linter rules for appClips target bundle ID

* Add default settings for AppClips

* Apply swift formatting

* Add fixture for appclips

* Add acceptance test for appclips

* Add appClips product type to be supported for iOS platform

* Add appClips product type tests

* Add lint for required parent application identifiers entitlement in app clip target

* Add missing appclips product in unit test and ui tests lintable target

* Update documentation with appClips addition

* Update changelog

* Rename appClips product type to appClip

* Add appClip lint tests for required entitlements

* Update docs with appClip product type renaming

* Update appClip acceptance test with appClip renaming

* Add target of appClip product type can host tests

* Skip adding embed app clip build phase for targets of non-app product type

* Add unit test and ui test targets in app clip test fixture

* Include missing appClip to be returned as apps

* Avoid traversing graph to extract app and appClip pair

* Add steps to build app clip unit and ui tests

* Apply formatting

* Add a lint rule to detect an app dependency on more one app clip

* Improve missing parent application identifiers entitlement linting message

* Fix ambiguous rake task name

* Run generate-6 acceptance tests containing appclip test with Xcode 12

* Restore changelog

* Replace references of info.plist app clip fixture with default one

* Remove redundant references to assets in app clip fixture

* Add tests for appClip product type

* Update doc to include app clip reference

* Add test to confirm app clip bundle package type

* Add a step to appClip acceptance test to verify valid architecture

* Add a test for appClip build phase attributes

* Add App Clips example docs

* Infer AppClip framework dependency for target of AppClip product type

* Rename appclip target to avoid name collision with system AppClip import
2020-10-27 20:07:45 +01:00
..
app_with_development_region_config Feature/development region (#1867) 2020-10-25 17:59:10 +01:00
app_with_framework_and_tests Project scheme (#1765) 2020-09-30 22:28:16 +02:00
app_with_framework_where_framework_failing_swiftlint Tuist lint command (#1682) 2020-09-09 08:51:41 +02:00
app_with_old_config_name Update fixtures 2020-03-10 18:29:49 +01:00
app_with_organization_name_config Feature/development region (#1867) 2020-10-25 17:59:10 +01:00
app_with_organization_name_project Add support for passing Organization name to project (#1062) 2020-03-13 19:18:36 +00:00
app_with_tests Test (#1935) 2020-10-26 19:23:42 +01:00
framework_with_environment_variables Allow passing the data to the manifest through environment variables (#1183) 2020-04-07 08:53:32 +02:00
invalid_manifest Print errors that arise when parsing the manifest (#1125) 2020-03-31 09:08:06 +02:00
invalid_workspace_manifest_name Replace swiftlint with swiftformat (#239) 2019-02-26 21:17:26 -05:00
ios_app_large Concatenate all the standard output events when parsing manifests 2020-03-31 16:39:04 +02:00
ios_app_with_actions Fix target action having a space. 2020-02-26 21:46:55 +01:00
ios_app_with_appclip Appclip support (#1854) 2020-10-27 20:07:45 +01:00
ios_app_with_coredata Add core data models to the sources build phase (#1542) 2020-07-14 10:08:45 +01:00
ios_app_with_custom_scheme Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_custom_workspace Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_env_suppressed Make environment logging configurable (#1782) 2020-09-24 20:18:56 +01:00
ios_app_with_extensions Use the build phase to locate the directory in derived data where artifacts are generated (#1939) 2020-10-25 15:28:55 +01:00
ios_app_with_framework_and_resources Fix Bool in plist generation. (#1827) 2020-09-27 19:54:28 +02:00
ios_app_with_framework_linking_static_framework Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_frameworks Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_headers Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_helpers Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_incompatible_dependencies Add acceptance tests 2020-03-02 20:14:29 +01:00
ios_app_with_incompatible_xcode Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_local_swift_package Bugfix/root package resolved (#1830) 2020-09-28 20:35:51 +02:00
ios_app_with_multi_configs Add support for customizing profile and analyze action 2020-03-11 17:50:09 +08:00
ios_app_with_pods Fix continuous integration (#502) 2019-09-18 23:55:46 +02:00
ios_app_with_remote_swift_package Generate namespace for resources (#1635) 2020-09-09 07:48:18 +02:00
ios_app_with_sdk Add support for `.xctest` dependency for tvOS targets (#1597) 2020-07-30 09:09:35 +02:00
ios_app_with_setup Update fixtures 2020-03-10 18:29:49 +01:00
ios_app_with_signing Signing install (#1186) 2020-06-15 20:59:51 +02:00
ios_app_with_static_frameworks Use the build phase to locate the directory in derived data where artifacts are generated (#1939) 2020-10-25 15:28:55 +01:00
ios_app_with_static_libraries Use the build phase to locate the directory in derived data where artifacts are generated (#1939) 2020-10-25 15:28:55 +01:00
ios_app_with_static_library_and_package Use the build phase to locate the directory in derived data where artifacts are generated (#1939) 2020-10-25 15:28:55 +01:00
ios_app_with_templates Buildable schemes (#1761) 2020-09-12 08:16:10 +02:00
ios_app_with_tests Test (#1935) 2020-10-26 19:23:42 +01:00
ios_app_with_transitive_framework Use the build phase to locate the directory in derived data where artifacts are generated (#1939) 2020-10-25 15:28:55 +01:00
ios_app_with_watchapp2 Generate namespace for resources (#1635) 2020-09-09 07:48:18 +02:00
ios_app_with_xcframeworks Use the build phase to locate the directory in derived data where artifacts are generated (#1939) 2020-10-25 15:28:55 +01:00
ios_workspace_with_dependency_cycle Generate namespace for resources (#1635) 2020-09-09 07:48:18 +02:00
ios_workspace_with_microfeature_architecture Cache targets as frameworks (#1851) 2020-10-01 17:55:22 +02:00
ios_workspace_with_microfeature_architecture_static_linking Generate namespace for resources (#1635) 2020-09-09 07:48:18 +02:00
.gitignore Pass Info.plist as dictionary (#380) 2019-07-15 18:05:52 +02:00
README.md Feature/development region (#1867) 2020-10-25 17:59:10 +01:00

README.md

Fixtures

This folder contains sample projects we use in the integration and acceptance tests. Please keep this keep in alphabetical order.

invalid_workspace_manifest_name

Contains a single file Workspac.swift, incorrectly named workspace manifest file.

ios_app_with_custom_workspace

Contains a few projects and a Workspace.swift manifest file.

The workspace manifest defines:

  • glob patterns to list projects
  • glob patterns to include documentation files
  • folder reference to directory with html files

The App's project manifest leverages additionalFiles tha defines:

  • glob patterns to include documentation files
  • Includes a swift Danger.swift file that shouldn't get included in any buid phase
  • folder references to a directory with json files

ios_app_with_extensions

Sample application with extension targets.

ios_app_with_tests

Simple app which includes a setup manifest.

The setup action simply installs a dummy tool (file) to /tmp

Can be tested by running tuist up.

ios_app_with_frameworks

Slightly more complicated project consists of an iOS app and few frameworks.

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - Framework1:
    - Framework1 (dynamic iOS framework)
    - Framework1Tests (iOS unit tests)
  - Framework2:
    - Framework2 (dynamic iOS framework)
    - Framework2Tests (iOS unit tests)
  - Framework3:
    - Framework3 (dynamic iOS framework)
  - Framework4:
    - Framework4 (dynamic iOS framework)
  - Framework5:
    - Framework5 (dynamic iOS framework)

Dependencies:

  • App -> Framework1
  • App -> Framework2
  • Framework1 -> Framework2
  • Framework2 -> Framework3
  • Framework3 -> Framework4
  • Framework4 -> Framework5

ios_app_with_framework_and_resources

A workspace with an application that includes resources.

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - Framework1:
    - Framework1 (dynamic iOS framework)
  - StaticFramework
    - StaticFramework (static iOS framework)
    - StaticFrameworkResources (iOS bundle)

Dependencies:

  • App -> Framework1
  • App -> StaticFramework
  • App -> StaticFrameworkResources

ios_app_with_framework_linking_static_framework

An example project demonstrating an iOS application linking a dynamic framework which itself depends on a static framework with transitive static dependencies.

Only Framework1.framework should be linked and included into App, everything else should be statically linked into the Framework1 executable.

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - Framework1:
    - Framework1 (dynamic iOS framework)
    - Framework1Tests (iOS unit tests)
  - Framework2:
    - Framework2 (static iOS framework)
    - Framework2Tests (iOS unit tests)
  - Framework3:
    - Framework3 (static iOS framework)
    - Framework3Tests (iOS unit tests)
  - Framework4:
    - Framework4 (static iOS framework)
    - Framework4Tests (iOS unit tests)

Dependencies:

  • App -> Framework1
  • Framework1 -> Framework2
  • Framework1 -> Framework3
  • Framework3 -> Framework4

ios_app_with_multi_configs

An workspace that contains an application and frameworks that leverage multiple configurations (Debug, Beta and Release) each of which also has an associated xcconfig file within ConfigurationFiles.

ios_app_with_sdk

An application that contains an application target that depends on system libraries and frameworks (.framework and .tbd).

One of the dependencies is declared as .optional i.e. will be linked weakly.

ios_app_with_static_libraries

This application provides a top level application with two static library dependencies. The first static library dependency has another static library dependency so that we are able to test how tuist handles the transitiveness of the static libraries in the linked frameworks of the main app.

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - A:
    - A (static library iOS)
    - ATests (iOS unit tests)
  - B:
    - B (static library iOS)
    - BTests (iOS unit tests)

A standalone C project is used to generate a prebuilt static library:

  - C:
    - C (static library iOS)
    - CTests (iOS unit tests)

Dependencies:

  • App -> A
  • A -> B
  • A -> prebuild C (libC.a)

Note: to re-create libC.a run fixtures/ios_app_with_static_libraries/Modules/C/build.sh

ios_app_with_static_frameworks

This fixture contains an application that depends on static frameworks, both directly and transitively.

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - Modules
    - A:
      - A (static framework iOS)
      - ATests (iOS unit tests)
    - B:
      - B (static framework iOS)
      - BTests (iOS unit tests)
    - C:
      - C (static framework iOS)
      - CTests (iOS unit tests)
    - D:
      - D (dynamic framework iOS)

A standalone Prebuilt project is used to generate a prebuilt static framework:

- Prebuilt
  - PrebuiltStaticFramework (static framework iOS)

Dependencies:

  • App -> A
  • App -> C
  • App -> PrebuiltStaticFramework
  • A -> B
  • A -> C
  • C -> D

Note: to re-create PrebuiltStaticFramework.framework run fixtures/ios_app_with_static_frameworks/Prebuilt//build.sh

ios_app_with_tests

Simple app with tests.

ios_app_with_transitive_framework

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - Framework1:
    - Framework1 (dynamic iOS framework)
    - Framework1Tests (iOS unit tests)

A standalone Framework2 project is used to generate a prebuilt dynamic framework :

  - Framework2:
    - Framework2 (dynamic iOS framework)

Dependencies:

  • App -> Framework1
  • Framework1 -> Framework2 (prebuilt)

Note: to re-create Framework2.framework run fixtures/ios_app_with_transitive_framework/Framework2/build.sh

ios_app_with_pods

An iOS application with CocoaPods dependencies

ios_app_with_incompatible_xcode

An iOS app whose TuistConfig file requires an Xcode version that is not available in the system.

ios_app_with_actions

An iOS app with a target that has pre and post actions.

ios_app_with_remote_swift_package

An iOS application with remote Swift package

ios_app_with_local_swift_package

An iOS application with remote Swift package

ios_app_with_static_library_and_package

An iOS application that depends on static library that depends on Swift package where static library is defined first

Note: to re-create PrebuiltStaticFramework.framework run fixtures/ios_app_with_static_library_and_package/Prebuilt/build.sh

ios_workspace_with_dependency_cycle

An example of a workspace that has a dependency cycle between targets in different projects.

ios_app_with_helpers

A basic iOS app that has some manifest bits extracted into helpers.

ios_app_with_xcframeworks

Workspace:
  - App:
    - MainApp (iOS app)
    - MainAppTests (iOS unit tests)
  - MyFramework:
    - MyFramework (dynamic iOS framework)
  - MyStaticFramework:
    - MyStaticFramework (static iOS framework)
  - MyStaticLibirary:
    - MyStaticLibrary (static iOS libraries)

An example of an application which depends on prebuilt .xcframeworks.

The .xcframework can be obtained by running the build.sh script within the each of the framework directories.

e.g. ios_app_with_xcframeworks/Frameworks/MyFramework/build.sh

ios_app_with_coredata

A simple iOS app with a Core Data model and Mapping Model (.xcmappingmodel)

ios_app_with_incompatible_dependencies

An iOS app that has a dependency with a dependency with a framework for macOS.

app_with_development_region_config

An iOS app where the development region is defined at the Config level.

app_with_old_config_name

An iOS app where the configuration is defined following the deprecated naming TuistConfig.

app_with_organization_name_config

An iOS app where the organization name is defined at the Config level.

app_with_organization_name_project

An iOS app where the organization name is defined at the Project level.

invalid_manifest

A project with an invalid manifest

framework_with_environment_variables

A framework project that leverages environment variables to change the name of the framework.