Skip to content

Commit

Permalink
Merge pull request #212 from ilyapuchka/patch-1
Browse files Browse the repository at this point in the history
Improved README examples
  • Loading branch information
Pedro Piñera Buendía authored Jan 12, 2018
2 parents 2a524b2 + 6bf462f commit dd80e94
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

### Changed
- **Breaking:** `XCWorkspace.Data` renamed to `XCWorkspaceData` and removed `references`.
- Improved README examples

## 2.0.0

Expand Down
56 changes: 50 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,24 +155,66 @@ try project.write(path: "MyApp.xcodeproj")
#### Adding `Home` group inside `Sources` group

```swift
guard var sourcesGroup = project.pbxproj.objects.groups.first(where: {$0.value.name == "Sources"})?.value else { return }
let homeGroup = PBXGroup(reference: "xxx", children: [], sourceTree: .group, path: "Home")
guard var sourcesGroup = project.pbxproj.objects.groups.first(where: {$0.value.name == "Sources" || $0.value.path == "Sources"})?.value else { return }
let homeGroup = PBXGroup(children: [], sourceTree: .group, path: "Home")
let groupRef = pbxproj.objects.generateReference(homeGroup, "Home")
sourcesGroup.children.append(homeGroup, reference: groupRef)
project.pbxproj.objects.addObject(groupRef)
```

<details>
<summary>Versions <2.0</summary>

```swift
guard var sourcesGroup = project.pbxproj.objects.groups.first(where: {$0.value.name == "Sources" || $0.value.path == "Sources"})?.value else { return }
let homeGroup = PBXGroup(reference: project.pbxproj.generateUUID(for: PBXGroup.self), children: [], sourceTree: .group, path: "Home")
sourcesGroup.children.append(homeGroup.reference)
project.pbxproj.objects.addObject(homeGroup)
```

</details>

#### Add `HomeViewController.swift` file inside `HomeGroup`

```swift
let homeGroup = PBXGroup(reference: "xxx", children: [], sourceTree: .group, path: "Home")
let homeViewController = PBXFileReference(reference: "xxx", sourceTree: .group, path: "HomeViewController.swift")
let homeViewController = PBXFileReference(sourceTree: .group, name: "HomeViewController.swift", path: "HomeViewController.swift")
let fileRef = pbxproj.objects.generateReference(homeViewController, "HomeViewController.swift")
homeGroup.children.append(fileRef)
project.pbxproj.objects.addObject(homeViewController, reference: fileRef)
```

<details>
<summary>Versions <2.0</summary>

```swift
let homeViewController = PBXFileReference(reference: project.pbxproj.generateUUID(for: PBXFileReference.self), sourceTree: .group, name: "HomeViewController.swift", path: "HomeViewController.swift")
homeGroup.children.append(homeViewController.reference)
project.pbxproj.objects.addObject(homeViewController)
```

</details>

#### Add `HomeViewController.swift` file to `MyApp` target

```swift
let homeViewController = PBXFileReference(reference: "xxx", sourceTree: .group, path: "HomeViewController.swift")
guard let sourcesBuildPhase = project.pbxproj
.objects.nativeTargets
.values
.first(where: {$0.name == "MyApp"})
.flatMap({ target -> PBXSourcesBuildPhase? in
return project.pbxproj.objects.sourcesBuildPhases.first(where: { target.buildPhases.contains($0.key) })?.value
}) else { return }
// PBXBuildFile is a proxy model that allows specifying some build attributes to the files
let buildFile = PBXBuildFile(fileRef: fileRef)
let buildFileRef = project.pbxproj.objects.generateReference(buildFile, "HomeViewController.swift")
project.pbxproj.objects.addObject(buildFile, reference: buildFileRef)
sourcesBuildPhase.files.append(buildFileRef)
```

<details>
<summary>Versions <2.0</summary>

```swift
guard let sourcesBuildPhase = project.pbxproj
.objects.nativeTargets
.values
Expand All @@ -181,11 +223,13 @@ guard let sourcesBuildPhase = project.pbxproj
return project.pbxproj.objects.sourcesBuildPhases.values.first(where: { target.buildPhases.contains($0.reference) })
}) else { return }
// PBXBuildFile is a proxy model that allows specifying some build attributes to the files
let buildFile = PBXBuildFile(reference: "yyy", fileRef: homeViewController.reference)
let buildFile = PBXBuildFile(reference: project.pbxproj.generateUUID(for: PBXBuildFile.self), fileRef: homeViewController.reference)
project.pbxproj.objects.addObject(buildFile)
sourcesBuildPhase.files.append(buildFile.reference)
```

</details>

## Documentation 📄
You can check out the documentation on the following [link](https://xcodeswift.github.io/xcproj/index.html). The documentation is automatically generated in every release by using [Jazzy](https://github.com/realm/jazzy) from [Realm](https://realm.io).

Expand Down

0 comments on commit dd80e94

Please sign in to comment.