All Projects β†’ tuist β†’ Xcodeproj

tuist / Xcodeproj

Licence: mit
πŸ“ Read, update and write your Xcode projects

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Xcodeproj

Phimpme Ios
Phimp.me - Photo Image Editor and Sharing App. Phimp.me is a Photo App for iOS that aims to replace proprietary photo applications. It offers features such as taking photos, adding filters, editing images and uploading them to social networks.
Stars: ✭ 79 (-94.17%)
Mutual labels:  xcode
Suitcase
A flexible command line tool for instantly deploying user interfaces for simple commands and scripts.
Stars: ✭ 1,287 (-4.95%)
Mutual labels:  xcode
Mscircularslider
A fully-featured, powerful circular slider for iOS applications
Stars: ✭ 94 (-93.06%)
Mutual labels:  xcode
Read Only Coding
Automator services to make coding in Xcode easier
Stars: ✭ 82 (-93.94%)
Mutual labels:  xcode
Swift Project Template
πŸͺ Easily generate Swift projects with Cookiecutter
Stars: ✭ 85 (-93.72%)
Mutual labels:  xcode
Coremldemo
A simple demo for Core ML
Stars: ✭ 90 (-93.35%)
Mutual labels:  xcode
Xcactionbar
"Alfred for Xcode" plugin
Stars: ✭ 1,217 (-10.12%)
Mutual labels:  xcode
Awesome Xcode Scripts
A curated list of useful xcode scripts πŸ“ .
Stars: ✭ 97 (-92.84%)
Mutual labels:  xcode
Videngine
3D graphics for iOS using Metal and Swift
Stars: ✭ 86 (-93.65%)
Mutual labels:  xcode
Mvvm Ac
Xcode 10 Template For MVVM
Stars: ✭ 94 (-93.06%)
Mutual labels:  xcode
Statefultabview
A SwiftUI TabView that retains the state of each tab as well as some other goodies.
Stars: ✭ 83 (-93.87%)
Mutual labels:  xcode
Swiftgif
[UNMAINTAINED] 🌠 A small UIImage extension with gif support
Stars: ✭ 1,255 (-7.31%)
Mutual labels:  xcode
R.objc
Get autocompleted resources like images, localized strings and storyboards in ObjC projects
Stars: ✭ 92 (-93.21%)
Mutual labels:  xcode
Xcodecolorsense
🎈 An Xcode plugin that makes working with color easier
Stars: ✭ 79 (-94.17%)
Mutual labels:  xcode
Pluggableappdelegate
!! No longer supported !! A lightweight service-oriented AppDelegate for iOS, made in Swift.
Stars: ✭ 96 (-92.91%)
Mutual labels:  xcode
Spellchecker
SpellChecker for Xcode
Stars: ✭ 79 (-94.17%)
Mutual labels:  xcode
Xmlmapper
A simple way to map XML to Objects written in Swift
Stars: ✭ 90 (-93.35%)
Mutual labels:  xcode
Simctl
Ruby interface to xcrun simctl
Stars: ✭ 97 (-92.84%)
Mutual labels:  xcode
Collectionnode
a collectionView made for Sprite Kit
Stars: ✭ 96 (-92.91%)
Mutual labels:  xcode
Xfunnyeditor
Xcode plugin to display an image on the background of the editor
Stars: ✭ 92 (-93.21%)
Mutual labels:  xcode

XcodeProj

All Contributors

Swift Package Manager Release Code Coverage Slack License

XcodeProj is a library written in Swift for parsing and working with Xcode projects. It's heavily inspired by CocoaPods XcodeProj and xcode.


Projects Using XcodeProj

Project Repository
Tuist github.com/tuist/tuist
Sourcery github.com/krzysztofzablocki/Sourcery
ProjLint github.com/JamitLabs/ProjLint
XcodeGen github.com/yonaskolb/XcodeGen
xspm gitlab.com/Pyroh/xspm

If you are also leveraging XcodeProj in your project, feel free to open a PR to include it in the list above.

Installation

Swift Package Manager

Add the dependency in your Package.swift file:

let package = Package(
    name: "myproject",
    dependencies: [
        .package(url: "https://github.com/tuist/xcodeproj.git", .upToNextMajor(from: "7.19.0"))
        ],
    targets: [
        .target(
            name: "myproject",
            dependencies: ["XcodeProj"]),
        ]
)

Carthage

Only macOS

# Cartfile
github "tuist/xcodeproj" ~> 7.11.

CocoaPods

pod 'xcodeproj', '~> 7.19.0

Scripting

Using swift-sh you can automate project-tasks using scripts, for example we can make a script that keeps a project’s version key in sync with the current git tag that represents the project’s version:

#!/usr/bin/swift sh
import Foundation
import XcodeProj  // @tuist ~> 7.11.
import PathKit

guard CommandLine.arguments.count == 3 else {
    let arg0 = Path(CommandLine.arguments[0]).lastComponent
    fputs("usage: \(arg0) <project> <new-version>\n", stderr)
    exit(1)
}

let projectPath = Path(CommandLine.arguments[1])
let newVersion = CommandLine.arguments[2]
let xcodeproj = try XcodeProj(path: projectPath)
let key = "CURRENT_PROJECT_VERSION"

for conf in xcodeproj.pbxproj.buildConfigurations where conf.buildSettings[key] != nil {
    conf.buildSettings[key] = newVersion
}

try xcodeproj.write(path: projectPath)

You could then store this in your repository, for example at scripts/set-project-version and then run it:

$ scripts/set-project-version ./App.xcodeproj 1.2.3
$ git add App.xcodeproj
$ git commit -m "Bump version"
$ git tag 1.2.3

Future adaption could easily include determining the version and bumping it automatically. If so, we recommend using a library that provides a Version object.

Documentation πŸ“

Want to start using XcodeProj? Start by digging into our documentation which will help you get familiar with the API and get to know more about the Xcode projects structure.

References πŸ“š

Contributing

  1. Git clone the repository [email protected]:tuist/xcodeproj.git.
  2. Generate xcodeproj with swift package generate-xcodeproj.
  3. Open XcodeProj.xcodeproj.

License

XcodeProj is released under the MIT license. See LICENSE for details.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Joseph Colicchio

πŸ€”

deatondg

πŸ€”

Dan Fleming

πŸ’»

Sascha Schwabbauer

πŸ€”

Marcin Iwanicki

🚧

Adam Khazi

🚧

Elliott Williams

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

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].