Create new single view application for iOS using command-line tools - cocoapods

Is it possible to create a new single view application for iOS using Xcodeproj?
https://github.com/CocoaPods/Xcodeproj/issues/304#event-418686970
Thanks.

"Single View Application" in Xcode is just a template.
Even in Xcode GUI, you could always create an empty project (not based on any particular template) and add the necessary new classes to it + configure the Info.plist appropriately so you'll end up with the same result as a project created using the template.
An Xcode template is just to make your project creation easy by allowing to create pre-configured projects, but doesn't do anything you couldn't do yourself manually.
So creating such a project using Xcodeproj is definitely possible, you just have to configure everything right to match what you have in the "Simple View Application" template (especially adding an properly configured Info.plist, an ApoDelegate and a ViewController to your project and maybe adjust its Build Settings — which are all possible using the Xcodeproj gem)
You could also be interested in liftoff, which is a tool that actually uses Xcodeproj to make your new Xcode projects creation from the command line easy.

Related

Xamarin... How do you link a file in the Main (PCL?) project into the OS specific project?

I'm following this tutorial for setting up an app.config on a Xamarin app.
The Tutorial
one of the last steps is:
Add this PCL app.config file as a linked file on all your platform projects. For android, make sure to set the build action to ‘AndroidAsset’, for UWP set the build action to ‘Content’
Access your setting:
I have no idea what they are taking about, how in Vs2017 do I add a file as a linked file to the sub-os projects?
I'm sure this is stupid simple, but I'm totally missing it. thanks.
I figured it out
Right click on Project, add existing select teh file, on the add dialog the add button has a dropdown, change it to add link.

Include Headers from added frameworks on Xcode

I want to work with some frameworks like glew and cg so i manually added
the needed frameworks to my project by right clicking the project -> Add files to ...
and choosing the correct framework. The problem is, when i try to include the header files,
Xcode cant find any of them. I hope this picture will help to understand:
And:
The error given is for the glew framework, but it also happens on Cg.
As you can see on the left, The needed frameworks were added.
Any idea on how i can include these headers?
After trying to add the header files manually i got an architecture error:
I dont know if this is how it should look like.
Thanks!
Before starting, remove the framework and all files you have added while trying to make it work.
Then, you have to add the frameworks in the Build Phases of your target. Then go into Link Binary With Libraries and select your framework from there.
This should do it. Your headers should be available as auto-completion after each #import directive.
If it does not work (it sometimes happens), there are additional steps I can provide to you.
Additional steps:
Go to your project settings, in the build settings:
Complete the Framework Search Paths with the path of your framework
Do the same with User Header Search Path
Then, it should work. If it does not, you will need to add the full path of your header in the #import directive. Example:
#import "/path/to/my/header.h"
Apple's documentation available here states:
In the project navigator, select
your project
Select your target
Select the 'Build Phases' tab
Open 'Link Binaries With Libraries'
expander
Click the '+' button
Select your framework
(optional) Drag and drop the added
framework to the 'Frameworks' group
In my case I have added Framework Search Paths for Target, but it should be added to Project
Also Always Search Users Path should be yes
For those whose autocomplete fails after adding framework.
I used to add frameworks, by going to Build Phases and taking the Link Binary with Libraries option. Now in XCode 6.1, though project was building fine, autocomplete in XCode was not working.
So what needs to be done is:
Remove the already added framework from Project Navigator and also from Link Binary with Libraries.
Add framework to project by simply File -> Add Files to option in XCode.
And auto complete will start working.
In my case, the external framework had been downloaded with Windows and added to the project. Then it was transferred to OSX, where the Xcode project was built and the external framework didn't load properly. I guess it is because Windows changes the framework folder to be a regular folder, which OSX then has trouble with.
Solution for me was to simply download the framework with OSX and drag it into the framework folder in the XCode project.
In my case I had to update a framework version, so I just replaced the .framework in the filesystem and then I got the error you've mentioned in the question.
Removing the framework and adding it back again, playing with the search paths and all the other suggestions didn't help.
Eventually, cleaning the build folder did the trick:
Select "Product" from the xcode menu, hold the option key and click on: "Clean Build Folder".
After that I built and ran the project successfully.

How to use Xcode to design interface iosopendev?

I have Xcode 4.4.1 installed on my system.
I recently installed iosopendev to develop apps for jailbreak. It integrated well, now I can see the option for iosopendev in new project menu.
My question is, how do I design the interface visually, like using storyboard for a jailbreak app, and which template should I select for that?
For starters, I selected the Cocoa Touch Library Template, but it didn't have a storyboard or xib.
I would highly appreciate it, if someone could elaborate the steps and method for designing apps for jailbreak visually using Xcode.
P.S.- I have searched a lot on the internet and didn't find anything useful and hence as a last resort posted a question here.
Two ways you can create UI apps in Xcode that can be used with iOSOpenDev:
(1) Select an Xcode template and refer to https://github.com/kokoabim/iOSOpenDev/wiki/Convert-to-iOSOpenDev-Project to convert it to iOSOpenDev.
..Or..
(2) Select an iOSOpenDev template (that produces a bundle binary), add XIB file(s), create a Copy Bundle Resources Build Phase and drag-and-drop that new Build Phase so that it is above the Run Script Build Phase that runs the iosod script.

Migrate xib file to Xcode 4.4

This should be an easy one, but surprisingly I could not find any information about it being or not being possible to do.
I have some .xib files created in older versions of Xcode/Interface Builder and I would like to use Xcode 4.4's new features but so far I've only been able to achieve this by deleting the older .xib files and creating new ones from scratch.
You may need to update the older xib files' development target. Select the xib file from the project navigator and open the file inspector. In the file inspector's Interface Builder Document section is a Development menu. Try updating the development target to Xcode 4.4 and see if that allows you to take advantage of the new Xcode 4.4 features.
If updating the development target doesn't work, you'll have to provide some more information about the problems you're having and the features you haven't been able to access.

Command line tool to add resources to an Xcode project

I've got an Xcode project that creates a standard application that can be branded in multiple ways and contain some custom content. At the moment I have a Resource "Resources > Tour Packages" with the custom files under this. At the moment every time I want to brand the app a different way I have to delete the old files from this resource and then manually add the new versions via the XCode UI. I can't post and image but it is here - http://img.skitch.com/20100121-xub48r6e1p857c84hdrgg25dw6.jpg).
My Question: Is there a command line tool that performs the same operation?
You'd probably be better off just creating multiple targets in your Xcode project, and associating the resources for each branded version of the app with one target.
To do this, just right-click on your target and select Duplicate. You should then remove the custom resources from the Copy bundle resources build phase. You can then add a new set of resources to the Copy bundle resources build phase that are specific to the new target. You can then build any target you like by selecting it from the Active Target popup in the Xcode toolbar or by selecting it in the Project > Set Active Target menu.
This way, you can easily build different versions of your app without having complete duplicates of all your source, difference Xcode projects etc.
Yes, the xcodeproj ruby gem allows you to add resources. https://rubygems.org/gems/xcodeproj/versions/0.28.2

Resources