Replies: 1 comment 2 replies
-
Hi @UNIDY2002, thank you so much for starting this discussion. It would be the best place to keep all the opinions and suggestions together. Moving toward the current proposal, I don't think it is the right solution to this problem unfortunately. The For context, we are aware of the problem and we are already working on improving that. For example, many changes are automaically applied when you reinstall the dependencies. That's what is happening with the Talking about a more long term solution, the idea would be to get completely rid of the One of the best tool to do so is tuist.io. This replace the This change requires a bit more work, we would also have to update the CLI, but overall will provide a better experience for everyone and reduce the maintenance nightmare. I'm curious to hear what you think about this idea and the changes we are introducing to simplify the upgrade experience. |
Beta Was this translation helpful? Give feedback.
-
This is part of the effort to mitigate the pain in configuring and upgrading
project.pbproj
.Take the upgrade from 0.67 to 0.68 as an example (reference: #528 (comment)). The value for
CLANG_CXX_LANGUAGE_STANDARD
is updated toc++17
, and the build phase scripts are also changed, which are both hidden among the diffs and hard to notice.Another example is the upgrade from 0.68 to 0.69. The value for
IPHONEOS_DEPLOYMENT_TARGET
(which occurs 4 times) is updated from11.0
to12.4
, and the build phase script is also updated.My plan is to use a separate
.xcconfig
file to define some variables in plain text, so that during upgrades, (ideally) only the.xcconfig
file requires modifying (which is also easier to diff), and theproject.pbproj
can be left untouched.You might argue that the values I listed above rarely change, and that it is hard to predict which values might get changed in the future. Then I would like to describe another case where this design is worthwhile.
With this design, we can move variables like
MARKETING_VERSION
andPRODUCT_NAME
into a separate file, which are often modified during development. Developers can therefore update these values without opening Xcode, or within the CI process. It can also reduce the occurrence of the APP name (e.g.RnDiffApp
), which is beneficial for maintenance (possible reference: #546 (reply in thread)).The major change of this design is only a new
.xcconfig
file, and I believe that it will bring many potential benefits.Possible points for discussion:
.xcconfig
fileBeta Was this translation helpful? Give feedback.
All reactions