All Projects → toshi0383 → Xcconfig Extractor

toshi0383 / Xcconfig Extractor

Licence: mit
Refactor BuildSettings into xcconfigs

Programming Languages

swift
15916 projects

Labels

Projects that are alternatives of or similar to Xcconfig Extractor

R.objc
Get autocompleted resources like images, localized strings and storyboards in ObjC projects
Stars: ✭ 92 (-10.68%)
Mutual labels:  xcode
Xcodeproj
📝 Read, update and write your Xcode projects
Stars: ✭ 1,354 (+1214.56%)
Mutual labels:  xcode
Snowonder
🔮 Magical import declarations formatter for Xcode
Stars: ✭ 100 (-2.91%)
Mutual labels:  xcode
Mvvm Ac
Xcode 10 Template For MVVM
Stars: ✭ 94 (-8.74%)
Mutual labels:  xcode
Awesome Xcode Scripts
A curated list of useful xcode scripts 📝 .
Stars: ✭ 97 (-5.83%)
Mutual labels:  xcode
Danger Xcode summary
A Danger plugin that shows all build errors, warnings and unit tests results generated from xcodebuild.
Stars: ✭ 98 (-4.85%)
Mutual labels:  xcode
Xmlmapper
A simple way to map XML to Objects written in Swift
Stars: ✭ 90 (-12.62%)
Mutual labels:  xcode
Swiftplaygroundscli
Easily generate Swift Playgrounds from your command line 👨‍💻
Stars: ✭ 103 (+0%)
Mutual labels:  xcode
Simctl
Ruby interface to xcrun simctl
Stars: ✭ 97 (-5.83%)
Mutual labels:  xcode
Todolist
A simple ToDoList written in Swift
Stars: ✭ 100 (-2.91%)
Mutual labels:  xcode
Mscircularslider
A fully-featured, powerful circular slider for iOS applications
Stars: ✭ 94 (-8.74%)
Mutual labels:  xcode
Collectionnode
a collectionView made for Sprite Kit
Stars: ✭ 96 (-6.8%)
Mutual labels:  xcode
Openrct2
An open source re-implementation of RollerCoaster Tycoon 2 🎢
Stars: ✭ 10,115 (+9720.39%)
Mutual labels:  xcode
Xfunnyeditor
Xcode plugin to display an image on the background of the editor
Stars: ✭ 92 (-10.68%)
Mutual labels:  xcode
React Native
React Native wrapper for PSPDFKit for iOS, Android and Windows UWP.
Stars: ✭ 100 (-2.91%)
Mutual labels:  xcode
Coremldemo
A simple demo for Core ML
Stars: ✭ 90 (-12.62%)
Mutual labels:  xcode
Stompclientlib
Simple STOMP Client library, Swift 3 and 4, 4.2, 5 compatible
Stars: ✭ 99 (-3.88%)
Mutual labels:  xcode
Circleci Demo Ios
A sample iOS app that builds on CircleCI
Stars: ✭ 103 (+0%)
Mutual labels:  xcode
Ios Learning Materials
📚Curated list of articles, web-resources, tutorials and code repositories that may help you dig a little bit deeper into iOS [and Apple Platforms].
Stars: ✭ 1,380 (+1239.81%)
Mutual labels:  xcode
Jenkinsci Ios
A Jenkins job setup for your XCode project.
Stars: ✭ 99 (-3.88%)
Mutual labels:  xcode

xcconfig-extractor

Refactor buildSettings into xcconfigs.

Build Status patreon

Requirements

  • Xcode10+ is officially supported, but should work against older ones too.

Usage

$ xcconfig-extractor /path/to/Your.xcodeproj Configurations

This will create xcconfig files under Configuration dir. Configurations are removed from buildSettings section of pbxproj.

Generated xcconfigs are added to your project automatically. ✏️

xcode's general tab

Available Options

Options:
    --no-trim-duplicates [default: false] - Don't extract duplicated lines to common xcconfig files, simply map each buildSettings to one file.
    --no-edit-pbxproj [default: false] - Do not modify pbxproj at all.
    --include-existing [default: true] - `#include` already configured xcconfigs.
    --no-set-configurations [default: false] - Do not set xcconfig(baseConfigurationReference) in pbxproj. Ignored if `--no-edit-pbxproj` is true.

Build Setting Validation

⚠️ Waring ⚠️

xcconfig-extractor is a refactoring tool. It shouldn't affect your App's actual "Build Setting".

Recommended way to check Build Settings is to use xcodebuild command. Make sure outputs does not change between before and after.

$ xcodebuild -showBuildSettings -configuration Release > before
$ # apply xcconfig-extractor
$ xcodebuild -showBuildSettings -configuration Release > after
$ diff before after # should prints nothing!

If outputs differ, fix it manually e.g. simply by adding missing value to target's xcconfig.

xcconfig does not allow any $(inherited) from #includeing xcconfigs. (See: https://github.com/toshi0383/xcconfig-extractor/pull/8#issuecomment-298234943) So if you have any existing xcconfig configured on your project, it might cause problems. This article is helpful to understand how inheritance works.

agvtool compatibility

⚠️ Waring ⚠️

If you use agvtool for automatic versioning, it won't work after applying xcconfig-extractor.
agvtool updates versions correctly iff INFOPLIST_FILE is configured in Xcode's buildSettings section.

So make sure you either

  • Restore INFOPLIST_FILE in Xcode's buildSettings section.

or

  • Quit using agvtool and fallback to other tools like /usr/libexec/PlistBuddy to update Info.plist.

e.g.

/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $(git describe --tags --abbrev=0)" App/Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${BITRISE_BUILD_NUMBER}-${BITRISE_GIT_BRANCH}" App/Info.plist

Install

Mint

mint install toshi0383/xcconfig-extractor

Build from source

  • Clone this repo and run swift build -c release.
  • Executable will be created at .build/release/xcconfig-extractor.

Donate

If you think it's a useful tool, consider donation to maintain project.

patreon

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].