Evitando conflitos 없음 Xcode
소개
O Tuist 파라 gerar projetos e workspaces do Xcode e que com isso nos evitamos conflitos na hora do merge do merge, resolvemos problemas parager o projeto que vai ser alterado(모도 포코).
인스타라상
A instalação é muito simples, basta executar o comando no terminal:
curl -Ls https://install.tuist.io | bash
Criando um projeto novo
Se for um novo projeto utilização do Tuist é super simples.
Basta criar uma 파스타 e executar o
tuist init
mkdir MyApp
cd MyApp
tuist init --platform ios
O comando init irá gerar os arquivos base,
Info.plist
, AppDelegate.swift
, arquivos de teste e o Project.swift
que contém as configurações do projeto.Migrando um projeto Existente
A migração no meu caso foi 평온한 porque o projeto é simples e tenho um Workspace com vários projetos que 의존 do Core e uma únicadependência externa em um Target de teste.
핵심 마이그레이션 o 코어, 현재 작업 공간에 대한 종속성 정의, 프로젝트 구성에 대한 해결, 작업 공간 구성에 대한 해결.
Na 파스타 데 카다 프로제토 크리에이 o arquivo
Project.swift
, no diretório raíz o Workspace.swift
e a 파스타 Tuist
com o arquivo Dependencies.swift
Configurações do projeto
O Project.swift contém a configuração do projeto. É nesse arquivo onde são definidos nome, Organização, 목표, 스키마, 외부 코이사스.
Comecei fazendo o import do framework
ProjectDescription
esse arquivo deve inicializar uma variável do tipo Project
que pode ter qualquer nome, mas a recomendação da documentação é 0145067 memoar.comoUm project precisa obrigatoriamente dos parametros:
project
e name
que é um array do tipo Target.No Target e especificado o nome, plataforma, tipo do produto, bundle e os arquivos de codigo.
let target = Target(name: "App",
platform: .iOS,
product: .app,
bundleId: "com.rafa.example",
infoPlist: "Info.plist",
sources: "Sources/**",
dependencies: [])
let project = Project(
name: "MyProject",
targets: [target]
)
Dependências externas
A integração com dependências externas ainda está em alpha, como é avisado na documentação
No momento que estou escrevendo esse texto a integração com Cocoapods ainda não é suportada.
Cada projeto pode ter suasdependências configuradas Individualmente, basta criar a 파스타
targets
com o arquivo Tuist
dentro dela.No meu caso, fiz isso na 파스타 raiz do projeto porque tenho uma únicadependência externa.
import ProjectDescription
let dependencies = Dependencies(
carthage: [
.github(path: "Alamofire/Alamofire", requirement: .exact("5.0.4")),
],
swiftPackageManager: [
.remote(url: "https://github.com/Alamofire/Alamofire", requirement: .upToNextMajor(from: "5.0.0")),
],
platforms: [.iOS]
)
Feito isso baixe Feito isso baixe Dependências rodando 역
Dependencies.swift
. Uma 파스타 chamada Dependencies será criada e o codigo será baixado nela.De volta ao
tuist dependencies fetch
é necessário registrar no Target a 종속성.let target = Target(name: "App",
platform: .iOS,
product: .app,
bundleId: "com.rafa.example",
infoPlist: "Info.plist",
sources: "Sources/**",
dependencies: [
.external(name: "Alamofire"),
])
작업 공간 구성
Por padrão o
Project.swift
cria um Workspace com o mesmo nome do projeto e já inclui asdependências.프로젝트에 대한 계획이 없고 모노레포와 사전에 사전 구성이 필요하지 않습니다.
import ProjectDescription
let workspace = Workspace(
name: "ProjectWorkspace",
projects: [
"Project1",
"Project2",
"Project3"
],
schemes: []
)
Por padrão os schemas são gerados automaticamente, mas podem ser personalizados para configurar as ações de cada um.
Gerando os arquivos
A configuração é essa,dependendo do tamanho do projeto pode ser um pouco cansativa mas os ganhos são compensatórios.
Depois de tudo configurado, é só rodar o
tuist generate
para baixar asdependências e depois tuist dependencies fetch
para gerar os projetos/workspaces.Testei outras ferramentas mas resolvi adotar o Tuist por utilizar Swift e não Yaml, possibilidade de fazer cache dos modulos, cache dos testes, 스크린샷 de 종속성 e por 고려 a adoção fácil no projeto em que trabalho.
Finalizei Implementando o xcdiff evitando que o
tuist generate
fosse alterado manualmente.에 이소! :)
링크
Tuist.io
Tuist docs
xcdiff
Reference
이 문제에 관하여(Evitando conflitos 없음 Xcode), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/raafas/evitando-conflitos-no-xcode-3bda텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)