Skip to content

Conversation

@8ll
Copy link
Owner

@8ll 8ll commented May 9, 2023

Resolves https://github.com/tuist/xcodeproj/issues/YYY

Short description 📝

Describe here the purpose of your PR.

Solution 📦

Describe the solution you came up with and the reasons that led you to that solution. If you thought about other solutions don't forget about mentioning them.

Implementation 👩‍💻👨‍💻

Detail in a checklist the steps that you took to implement the PR.

  • Step 1
  • Step 2

dive and others added 30 commits February 18, 2021 17:10
* Update xcconfig test data with comment examples

* Adjust unit-tests for xcconfig

* Update settingRegex regular expression with comments support

* Fix comment spelling

* Add an edge-case test when a comment has to space

* Add CHANGELOG.md entry for the PR
Co-authored-by: Alfredo Delli Bovi <[email protected]>
* Add CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER to projectAll

* Update CHANGELOG

* Remove whitespace
* 🛑 Prevent overwriting identical workspace data

* 🛠 Address review comment

* 🤦 Okay XCWorkspace != XCWorkspaceData

* 🛠 Use data with glo path

* 😎 Shift the responsibility of data equality to XCWorkspace

* Update Sources/XcodeProj/Workspace/XCWorkspace.swift

Co-authored-by: Marek Fořt <[email protected]>

Co-authored-by: Marek Fořt <[email protected]>
…nitializer (tuist#605)

- Added an initializer which receives buildableIdentifier as a String
- This is needed when adding targets from local swift packages to a scheme
* remove objc

* update changelog
* Fix add group to have correct parent set

* Update CHANGELOG.md
* Added new product types.

* [tuist#617] Change-log update.

* Added new tests to PBXProductTypeTests

* [tuist#617] Fixes copy/paste issue.
* Make `runPostActionsOnFailure` optional

Resolves: tuist/tuist#2991

- Generated projects had `runPostActionsOnFailure` set in their schemes by default to `NO`
- Xcode ends up removing this attribute when it's value is `NO` resultting in producing git diffs for any checked in projects that were previously generated
- To mitigate this, the `runPostActionsOnFailure` option is being changed to an optional one where it's only written in the case it's explicitly defined to a specific value

Test Plan:

- Verify unit tests pass

* Update change log
…t#612)

* Add ability to initialize scheme without a blueprint identifier

* Add test for serialization

* Update changelog

Co-authored-by: Pedro Piñera Buendía <[email protected]>
This validates at least one path exists, and reuses that variable instead
* Improve performance of commented string

* Update Sources/XcodeProj/Utils/CommentedString.swift

Co-authored-by: Marek Fořt <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Marek Fořt <[email protected]>

Co-authored-by: Alfredo Delli Bovi <[email protected]>
Co-authored-by: Marek Fořt <[email protected]>
Co-authored-by: Pedro Piñera Buendía <[email protected]>
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Bumps [cocoapods](https://github.com/CocoaPods/CocoaPods) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/CocoaPods/CocoaPods/releases)
- [Changelog](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md)
- [Commits](CocoaPods/CocoaPods@1.10.1...1.11.0)

---
updated-dependencies:
- dependency-name: cocoapods
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Bumps [jazzy](https://github.com/realm/jazzy) from 0.13.6 to 0.14.0.
- [Release notes](https://github.com/realm/jazzy/releases)
- [Changelog](https://github.com/realm/jazzy/blob/master/CHANGELOG.md)
- [Commits](realm/jazzy@v0.13.6...v0.14.0)

---
updated-dependencies:
- dependency-name: jazzy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* Fix indentation in example

This also adds a trailing `,` for easier copy pasting to projects with existing dependencies

* It's case sensitive too apparently

Co-authored-by: Pedro Piñera Buendía <[email protected]>
michaelmcguire and others added 30 commits August 30, 2022 23:38
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
- Xcode 14 supports extensionless watchOS applications (that have the regular application product identifier)
- Those target can now include source, resources and can link other frameworks like regular application targets
- The default settings are being updated to accomodate this, more specifically the linker search paths

Test Plan:

- Verify tests pass

References:

- tuist/tuist#4658
- tuist/tuist#4572
* Sets `customWorkingDirectory` for schemes

This attribute was missed in launch and profile
schemes

* remove debug

* ensure correct attribute order

* feedback
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Marek Fořt <[email protected]>
- Add the ability to specify the platform filter in the init for `PBXBuildFile` for convenience.
- Add support for `platformFilters` (plural) attribute
- When selecting multiple platform filters, Xcode uses a different attribute `platformFilters` (plural) vs when using a single one it uses `platformFilter` (singular)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
- Added support for creating and reading `XCUserData`
- Multiple `XCUserData` elements can be optionally added to generated projects
- By default `XCUserData` and its nested elements are only replaced if explicitly specified, however if left unspecified any elements on disk are left as is
  - This was a conscious choice to support project generation workflows where users may have custom local schemes / breakpoints etc... which shouldn't get erased when projects are re-generated
- Updated path handling for some of the common elements (e.e. breakpoints, schemes, etc...) to allow sharing logic between shared data and user data
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Kas <[email protected]>
…tuist#743)

Resolves tuist#738

### Short description 📝
- Update `XCSharedData` `Writable` conformance so that `WorkspaceSettings` are written.

### Solution 📦

- There was already a pattern defined for writing `XCSharedData` properties (`schemes` and `breakpoints`), and so I followed the same pattern to write the `workspaceSettings` property.
- The getting started docs were slightly out of sync with the code and didn't include the necessary `try` statements
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
- Add missing cases from doc comments
- Fix typos
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Luis Padron <[email protected]>
Resolves: tuist#756

- Reading the same `xcschememanagement.plist` file was resulting in different `XCSchemeManagement` objects
- This was due to the internal conversion of the `schemeUserState` from a dictionary to an array without sorting the dictionary key
- This lead to having differently ordered `XCSchemeManagement` arrays each time the plist was read
- Wrties were stable (going from `XCSchemeManagement` > `plist`) is most likely why this wasn't previously noticed
- To address this, they dictionary elements are sorted by key name
- Read stability tests have also been added and fixture updated to include more entries to aid with testing

Note: it's unclear why the `schemeUserState` is stored as an array, it's a candidate to be changed to dictionary in the next major release as it would be a breaking change to do so now without any compatibility accessors to maintain the same public API.

Test Plan:

- Verify unit tests pass
- Verify writing an `xcschememanagement.plist` file remains unchanged by these changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.