Core audio user space driver, How to start a xcode project? - core-audio

I am trying to start a project to create a virtual audio device which will mirror the system's default sound output, I want to create a .driver to place under /Library/Audio/Plug-Ins/HAL , but I am not able to figure out how to setup the .driver project, I could find Kext, Dext, but not driver,am I missing something. I use xcode 11.3.
If I choose IOkit Driver the product is a .kext.
If i choose Driverkit Driver the output is a .dext.
I am not able to get .driver as output.the project types I see

You should start by creating a new XCode project with a Bundle template. After clicking next you can choose the extension you want to give the plugin.
Or you could add a new target with the Bundle template in an existing XCode project which will give you the same options as mentioned above.
This project should give you a very good example.

Related

How can I change Xcode capabilities when I use Jenkins?

I have a Unity project and I want to enable push notifications in the Xcode project. I use Unity 4.6.2p4 and Xcode 8.3.3
enter image description here
I tried a couple of things.
First, I used the pbxproj library in PostBuildProcess in the Unity script. But I couldn't change the capabilities. Here is the code:
project = new PBXProject()
project.AddBuildProperty(target, "SystemCapabilities", "{com.apple.Push = {enabled = 1;};}");
Second, I copied the settings pbxproj. I did this because I read in an article that pbxproj file affects the capabilities. But it is not working.
I read that the entitlements file can affect capabilities as well. But I can't understand where it is and how I can edit it.
How can I set push notifications in Xcode? Please consider I'm not very familiar with Xcode's project file structure.

How do I build a Safari Extension Companion in Xcode 8.2.1? the template is missing

I want to create a Safari Extension Companion, but the option to create a Safari extension doesn't appear.
What is the right way to create an extension?
To create a Safari app extension, you add a new target to an existing project in Xcode. — mentioned in the documentation.
Launch Xcode and open an existing project containing an OS X application, or create a new one.
Create a new target by choosing File > New > Target.
In the New Target sheet, look in the sidebar on the left and select OS X Application Extension.
From the list of templates on the right, select Safari Extension and click Next.
Enter a Product Name for your extension, such as “My Extension.”
Make sure that your application project is selected in the Project menu, and that your OS X application target is selected in the Embed
in Application menu.
Click Finish.
When Xcode asks you if you want to activate a new scheme for your new extension, click the Cancel button.
Xcode adds a new group into your project, which contains several new files, including an Info.plist file, a variety of supporting source files, an Interface Builder file, a JavaScript file, and a toolbar image PDF.
* There might be a few more steps, although I'm pretty sure you can handle it...
↳ Add a Safari App Extension Target in Xcode
The easiest way is to just install Xcode 7 side-by-side with Xcode 8 - this works fine - and load your project in 7. Create the extension companion target, but don't do anything with it yet. Close Xcode 7 and open Xcode 8 to the same project/workspace, and you'll see the companion. If you use Swift you'll need to modernize the language (Xcode 7 uses Swift 2, Xcode 8 uses Swift 3); the IDE will suggest some of the changes directly when you try to compile but others you may need to change by hand.
Alternatively / more awkwardly, you can create a new target (such as a Safari Extension) in Xcode 8, and then delete the extraneous files (such as JavaScript for content injection) and edit/replace the plist in the extension to the plist of an extension companion. The key property is <string>com.apple.Safari.extension-companion</string> for the NSExtensionPointIdentifier; also make sure that the NSExtensionPrincipalClass implements the extension companion protocol (both of these keys are under NSExtension).
Please be aware that I've had mixed results with this approach. Sometimes it works, sometimes Safari pretends it can't see the extension companion at all, sometimes the extension can't see the companion until you re-load it and then it can... If you can see the extension companion, it should work (but note the warning here about if the companion crashes) and I haven't found any logging that helps troubleshoot these issues. Attempting to debug the extension companion using Xcode 8 doesn't work for me either.
I really wish Apple didn't insist so hard on "thinking different" and just supported Native Messaging like every single other modern browser.

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

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.

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.

Generic archive created when updating an existing Mac app?

I've made an update to my existing Mac app and went to archive it.
In Organizer it came up as a new entry and not under the previous releases I had. This new entry appears generic, ie. no app icon, no version or identifier info, just the name of the app came through. What happened? How do I troubleshoot?
In the update I added a UTI and also copied a plug-in into my bundle. Could those things have something to do with it?
Got it. My problem was related to dependency targets. Here's the solution:
http://www.weston-fl.com/blog/?p=2429
(Excerpt added 2012-12-18; see blog post for screenshots and background info)
… Select dependent project(s) in the Project Navigator
Find “Skip Install” and set to YES.
If you have more dependent project, repeat these steps for all of them (i.e. at static library projects).
The app is expected to be deployed so do not change the Skip Install’s No to YES there. Change at the dependent projects only.

Resources