I've started work on a project that will be primarily acting as a Sync Services Client. Ideally, the project have two components: a custom schema bundle and a preference pane.
As a first step, I've created an Xcode project for the schema bundle. But now I found myself ready to start writing the code for the preference pane and the client, and I'm not sure what the best way is to integrate it with the project I already have.
What approaches have you found to work well in these kinds of situations?
The easiest way is probably to create a new Pref Pane project. That way you get all the benefits. After that, you can actually drag the project into your schema project and make it a dependent of your schema project. Whenever you build your main project (the schema project), if there are any changes in your pref pane project it will get rebuilt.
Related
I have a Demo project and Framework which can be integrated with multiple ways(Cocoapods, SPM - using generated XCFramework, directly integrate with XCFramework)
For distributing Demo app to external users we integrate the Framework with SPM.
Problem with this approch is during development its makes really hard to regenerate XCFramework after each change, so I have decided to drag and drop the Framework's project to Demo app, but cant understand how to recompile XCFramework if there is a change.
Could you please help me with understading how to handle this scenario.
Create an .xcworkspace that contains the framework project and the demo app project side by side, then inside the demo app target General settings (see screenshot), add the .framework file from the framework project within the workspace instead of depending on the .xcframework binary file directly.
After that, add a "Copy File" build phase that embeds the framework file.
I've just started using taiga to manage some personal projects and I created my first scrum project, but then I realised that the way I'm approaching this project is more suited to kanban.
How do I change between project types? I can't find a setting that says 'switch project types' anywhere.
There is no master 'switch'. Taiga seems to hold a view of your project that's agnostic to how you display it (separation of concern!). Enabling either view is done via modules.
Here's a picture:
Just enable the one you want.
This might be a very easy to answer question but I'm losing time here trying to research silly little things so I thought I'd just pose the question here.
I have a solution in VS2013 with two projects. The main project (Startup project) is a C# Winforms project which targets a DB and the second project a SQL project which has the schema for said DB.
So I can make changes and build the SQL project. I can take snapshots and eveything works swimmingly. What I can't do is to Run the project (which should publish it into the (localdb) debug project. If I click on run, it runs the default startup project.
Of course I can temporarily set the SQL project as the default startup project, then run, then set the main project to the default startup project again.
Surely there must be a way in which I can build the SQL project and get it to publish to the debug DB all at once, or at least in easier steps as described above?
In fact, what I would ultimately like is if there was one hotkey that will build both projects, publish the SQL project to the debug DB and run the main project.
Never mind, I've figured it out. Go to PROJECT -> Project Dependencies...
Select the WinForms project in the "Projects:" combo box and tick the Database project in the "Depends on:" checklist box.
The WinForms project is now dependent on the Database project and if you Run the application, VS will first build the DB project, then publish it to the debug DB, then build the WinForms project and then run it. Or so it seems.
There are two sides to running the db deploy on each build, the on the one hand you want the db to be up to date but on the second it is quite slow and gets really irritating really quite quickly!
What you could do is to have your c# app as the startup app so pressing F5 starts it but also map a keyboard shortcut to "Build.SSDTPublishSelection", I map CTRL+6 as it is near F5 and I hadn't used that combination of shortcuts (at least not in the last 15 years!) - This only publishes the selected project so you do need to select it first in object explorer (I have that covered with another series of shortcuts which sets the focus to solution explorer and syncing with the current document - I know keyboard heaven, who needs vim and emacs ha ha)
This was you make sure the project is selected CTRL+6, publish then F5 and you should get what you want.
One additional thing is that if you haven't already, look at the add-ins that let you publish stored procs directly without going through the publish cycle, so you can make incremental changes, then when you are ready do a full publish and run all your tests (Dave Ballantyne published one: http://dataidol.com/davebally/2014/03/01/ssdt-fast-deploy/ and I have one: https://github.com/GoEddie/SSDTExtension/tree/master/download/0.4.2)
Hope it helps!
Ed Elliott
In my open-source Cocoa project, I have two Xcode projects -- one framework and one application. I want to link the framework in the application, and whenever I build the framework, I want the linked framework in the application to be updated automatically as well.
What is the correct way to set this up, especially so that someone else who clones my project can easily build both the framework and the application?
Drag the Framework project into the App project's source list (on the left). I make a "Projects" folder in the source list for that exact purpose.
Then, you can simply select your App Target, Get Info, and add the Framework as a Direct Dependency.
Now, whenever you build your App, your Framework will be built as well.
It's recommended to use a common Build Folder as well (Xcode->Preferences->Building) to help with linking.
I want to be able to build a web project and not its dependencies since I know that I have not modified any of the dependencies since the last build. I am looking to cut down the build time if possible. Is there a way to do this?
You could have a solution by
check the setting in Tools >> Options >> Projects and Solutions >>
Build and Run setting : Only build startup projects and dependencies on Run.
OR
If you want to go for sophistication then :
build >> Configuration Manager
from the "Active solution configuration:" dropdown select ""
give a name to your configuration and keep checked the "Create new project configurations" checkbox.
and then choose that config that you want and set the build or not check boxes.
To accomplish this in something I am working on, I created my own solution, added the projects I needed (including the projects I never wanted compiled), and then in the Configuration Manager turned off the check boxes for building the projects I didn't want to build, just as arora described above.
I've also made a copy of an existing solution (that had 16 components in it), saved it under new name (foo.sln -> foo.mine.sln), and then disabled the build of all the other sub-projects except the one(s) I am working on, that way I know for sure that I got the correct build settings.
It's not the simplest solution, but it works well for me, and takes less than 2 minutes to set up and is easy to understand. I normally add the new solution to the version control ignore list so that it never gets checked in.
Rather than project references you can just add the references to the dlls directly (the Add Reference dialog has tabs for these types, choose browse rather than project and remove the other projects from your solution). I typically create a full lib and web project solution for major development. Then just a solution for the website project for fixes where I don't need updated libs/dlls.
Although it is nice to have them autocompile if they have changed during heavy development. If they haven't changed it just refreshes them and recopies them to the bin folder.
Well one way would be to remove project references. Instead stick to dll references. You could use a post build script for dependent projects that copy the updated dll to the web project whenever they change.