Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / All-Topics

Generate Xcode Project via Swift Package Manager

5.00/5 (2 votes)
22 Aug 2016CPOL1 min read 9.8K  
How to generate Xcode project via Swift package manager

As part of my journey with Swift, I was watching this WWDC 2016 video – “Going Server-side with Swift Open Source” and may be at 31:36 of the video, my colleague Pat mentioned, ”I went through and created a Xcode project”. The Xcode project was created for debugging the server-side code under Bluepic-Server folder of Bluepic, a sample photo sharing application for iOS. As a Swift newbie, I was wondering how he did that? I started exploring various options like CMake, QT, etc. and was not getting what I wanted.

Note: To quickly create, maintain & monitor BluePic Sample, refer to IBM Cloud Tools for Swift.

While trying KituraA web framework and HTTP server for Swift on Linux(Ubuntu), I was reading through the documentation of Package manager and came across this instruction:

Using a Swift snapshot, it is possible to use the package manager’s support for generating an Xcode project.

If you already have Xcode 7.3.1 or above installed on your Mac, follow the Swift snapshot installation steps and the end result should look like this:

Swift Snapshot - Xcode

On a Terminal, run the below command (if you haven’t done yet):

export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"

Navigate to BluePic-Server folder on Terminal and run the below command to generate .XcodeProj:

swift package generate-xcodeproj

If everything goes as expected, you should see Bluepic-Server.xcodeproj file in the folder:

Generated .xcodeproj file

Vidyasagars-MacBook-Pro:Bluepic-Server VMac$ swift package generate-xcodeproj
Cloning https://github.com/IBM-Swift/Kitura.git
HEAD is now at d643c31 IBM-Swift/Kitura#513 Changed BluePic link
Resolved version: 0.15.7
Cloning https://github.com/IBM-Swift/Kitura-net.git
HEAD is now at 6193ca8 Avoid bottleneck on lock in __CFGetConverter by performing fewer, 
longer character conversion operations (#32)
Resolved version: 0.15.6
Cloning https://github.com/IBM-Swift/Kitura-sys.git
HEAD is now at 3ef9ec7 IBM-Swift/Kitura#466 Updated to latest LoggerAPI
Resolved version: 0.13.2
Cloning https://github.com/IBM-Swift/LoggerAPI.git
HEAD is now at 9b30704 Merge pull request #8 from tkhuran/develop
Resolved version: 0.7.1
Cloning https://github.com/IBM-Swift/BlueSocket.git
HEAD is now at 6e8915c Added blurb about BlueSSLService add-on.
Resolved version: 0.5.20
Cloning https://github.com/IBM-Swift/CCurl.git
HEAD is now at aa7833f Update Package.swift
Resolved version: 0.1.1
Cloning https://github.com/IBM-Swift/CHttpParser.git
HEAD is now at 41daabb IBM-Swift/Kitura#365 Removed references to code 
installed externally and the pkgConfig file that is no longer needed.
Resolved version: 0.1.1
Cloning https://github.com/IBM-Swift/SwiftyJSON.git
HEAD is now at a1e6611 Added UInt support for Linux
Resolved version: 7.0.4
Cloning https://github.com/IBM-Swift/Kitura-TemplateEngine.git
HEAD is now at 38e7cdb IBM-Swift/Kitura#459 Explicitly indicate that there are no dependencies
Resolved version: 0.13.0
Cloning https://github.com/IBM-Swift/Kitura-CouchDB.git
HEAD is now at d63d287 Updated version of Kitura-net
Resolved version: 0.15.0
Cloning https://github.com/IBM-Swift/HeliumLogger.git
HEAD is now at c43bfd1 IBM-Swift/Kitura#479 added static function use()
Resolved version: 0.7.4
Cloning https://github.com/IBM-Swift/Swift-cfenv.git
HEAD is now at f82bd3f Renaming module.
Resolved version: 1.1.0
Cloning https://github.com/ibm-bluemix-mobile-services/bluemix-objectstorage-swift-sdk.git
HEAD is now at 7bf6373 updated for Kitura-Net 0.13.7
Resolved version: 0.3.2
Cloning https://github.com/ibm-bluemix-mobile-services/bluemix-simple-http-client-swift.git
HEAD is now at b92f0c7 Updated to use  Kitura-net 0.15.x
Resolved version: 0.2.5
Cloning https://github.com/ibm-bluemix-mobile-services/bluemix-simple-logger-swift.git
HEAD is now at 0fdd30d updated readme
Resolved version: 0.2.0
Cloning https://github.com/ibm-bluemix-mobile-services/bms-mca-kitura-credentials-plugin.git
HEAD is now at 473564e updated to support no idToken scenario
Resolved version: 0.1.6
Cloning https://github.com/IBM-Swift/Kitura-Credentials.git
HEAD is now at 99f99c8 IBM-Swift/Kitura#496 Fixed setting of headers from passed plugins
Resolved version: 0.15.3
Cloning https://github.com/IBM-Swift/Kitura-Session.git
HEAD is now at ab8440f Update Kitura version
Resolved version: 0.7.1
Cloning https://github.com/IBM-Swift/BlueCryptor.git
HEAD is now at 9d020ee Update for latest toolchain.
Resolved version: 0.2.5
Cloning https://github.com/IBM-Swift/CommonCrypto.git
HEAD is now at 02a5c05 Merge pull request #4 from Bouke/master
Resolved version: 0.1.4
Cloning https://github.com/ibm-bluemix-mobile-services/bms-mca-serversdk-swift.git
HEAD is now at 4aa6b9f Updated to support no idToken available scenario
Resolved version: 0.2.2
Cloning https://github.com/ibm-bluemix-mobile-services/bms-pushnotifications-serversdk-swift.git
HEAD is now at ae5402e Added public initializers to Notification struct
Resolved version: 0.1.2
note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

note: you may be able to install libcurl using your system-packager:

    brew install curl

generated: ./BluePic-Server.xcodeproj

Note: As Swift package manager is evolving, commands are subject to change.

The post Generate Xcode Project via Swift Package Manager appeared first on Vidyasagar MSC.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)