Jake, Thanks for your insights.
Do you think it is possible to open a qml view inside a App Extension? My options: 1) Try to do it via Qt side. Based on what you have just told me seems to be impossible. 2) Grab a Xcode project that already works an link with the necessary Qt frameworks so I can instantiate a Qml View and embed it inside the App Extension. Thanks once again for your reply. Regards, Nuno > On 20 Jun 2017, at 16:17, Jake Petroules <jake.petrou...@qt.io> wrote: > > Application extensions are simply normal Mach-O executables with > _NSExtensionMain as their entry point instead of main. They are executed and > quit by the system when needed, and the timing of these events cannot be > controlled manually. > > qmake does not support building app extensions (although the Qt libraries > themselves are now built with -fapplication-extension, making them extension > compatible) and most likely never will. > > Qbs has some basic support for building app extensions already. The rest of > the work needed is, as you say, in the platform plugin, which currently > expects a normal main() entry point. I'm not sure yet how we'll solve that, > as the iOS platform plugin is very tightly coupled to application > initialization. > > Typically in an application extension you give the Info.plist the name of a > storyboard or view controller class to instantiate, and that's your primary > "entry point". You cannot instantiate the UIApplication or set a > UIApplicationDelegate yourself. > >> On Jun 20, 2017, at 4:57 AM, Nuno Santos <nunosan...@imaginando.pt> wrote: >> >> Hi, >> >> I finally had some time to research on this. >> >> I was able to create a test app with Qt Creator and manually place another >> app (extension) inside the generated .app bundle PlugIns folder. The app >> extension is an audio unit plugin for AUV3 hosts such as Modstep. I have >> then used Modstep to see if it could see my App Extension. He does find the >> App Extension but when trying to load it, it hangs. Now I’m in the darkness. >> The device log didn’t show much and the host app totally hanged. >> >> App Extensions seem to be an app but without main. I have discovered that >> Xcode passes the -e _NSExtensionMain to an App Extension build. >> >> Questions: >> >> 1) When I set my Qt app to be an app, I’m forced to declare a main function, >> otherwise it gives the following error: >> >> Undefined symbols for architecture armv7: >> "_main", referenced from: >> user_main_trampoline() in libqios_debug.a(qioseventdispatcher.o) >> >> Can I make a Qt iOS that doesn’t have a main function? >> >> 2) What commands can I use to compare the type of binary files? >> >> Is otool -l the most indicated? >> >> >> My ultimate goal is to keep using Qml to draw the App Extension user >> interface inside the host application. >> >> If that isn’t possible because of memory limits I still want to try pack and >> compile the whole thing in QtCreator, discovering the necessary flags and >> projecto configuration for that to happen. >> >> For that I need to know exactly what an App Extension is: a executable? a >> dynamic library? a static library? >> >> My knowledge of operating system underlying basics are very limited so I was >> trying to find some insights around here. >> >> Thanks, >> >> Best regards, >> >> Nuno >> >>> On 22 May 2017, at 10:08, Mike Krus <mike.k...@kdab.com> wrote: >>> >>>> >>>> On 22 May 2017, at 09:45, Nuno Santos <nunosan...@imaginando.pt> wrote: >>>> >>>> Milke, >>>> >>>> Thanks for your reply. >>>> >>>> I was not expecting an out of the box process. The problem is that I’m >>>> still lost. >>>> >>>> Let me show you the big picture. I have a synthesiser app. One of the >>>> functionalities of App Extensions are Audio Units. I want to provide the >>>> ability of other apps running multiple instances of my synthesiser app. >>>> This is called AudioUnit (which in the context of iOS is a V3 AudioUnit) I >>>> have found a cocoa example here: https://github.com/EricGeorge/AUInstrument >>>> >>>> From the working example I need to have a the app, which I currently >>>> develop using Qt. >>>> >>>> With the app development I always need Xcode in the end to enable app >>>> features such as inter-app audio, push notifications, etc since it is not >>>> possible to enable that on QtCreator. So, what I do is I run qmake and I >>>> have the generated Xcode project. >>> I think those settings are stored in an entitlement file, if you have set >>> it up once in Xcode, you should be able to copy the entitlement file to >>> your source folder and have qmake deploy it for you. >>> >>>> I also need to have a App Extension target which in the case of the >>>> example, links with a framework and makes part of the app membership, >>>> being placed inside the app target, under PlugIns dir. >>>> >>>> >>>> I have already done an AudioUnit with Qt. in order to make an AudioUnit, >>>> the target is a plugin which generates a dynamic lib (dylib). The trick >>>> with Qt is that basically you need to handle the packaging yourself. There >>>> is the need of making a TARGET.component and make all the dirs inside, >>>> etc. >>>> >>>> I don’t believe an app extension will be any way different from this. >>>> Right now I just don’t know how to put everything together. Questions I >>>> have: >>>> >>>> - What kind of target is an App Extension? dylib? Static lib? Exectuable? >>>> I think it might be a dylib just like a Mac OSX AudioUnit >>> no, extensions are apps, with an appex extension (first hurdle, the .app >>> extension for the targets generated by qmake is hard coded). >>> The host app and your extension then communicate via one of the Apple >>> designed IPX protocols (depending on the type of extension). That’s what >>> the example you link to shows. >>> >>>> - I think I will need to use Xcode anyway because of the code signing >>>> process >>>> - I don’t know how to configure a target on Xcode that depends on Qt stuff >>>> without having qmake to generate all the stuff. >>> I’ve never done it before but I guess the best path would be start from the >>> sample project you found and then lots forensic examination of the project >>> and associate files (plist and all) and see how to manually setup your own >>> project. Lots of the editing the Xcode project file in a text editor to >>> make it do what you want. >>> >>> >>> Mike >>> >>>> for now I’m just trying to handle project configuration issues. There will >>>> be an even more interesting challenge, which is to show a Qt app window, >>>> on the instance of the Audio Unit. >>>> >>>> Any ideas? >>>> >>>> Regards, >>>> >>>> Nuno >>>> >>>>> On 22 May 2017, at 09:21, Mike Krus <mike.k...@kdab.com> wrote: >>>>> >>>>> As far as I know, qmake is not capable of generating Xcode projects with >>>>> the right >>>>> structure (need 2 to start with, different project types, etc). >>>>> >>>>> Mike >>>>> >>>>>> On 21 May 2017, at 11:13, Nuno Santos <nunosan...@imaginando.pt> wrote: >>>>>> >>>>>> Robert, >>>>>> >>>>>> There is clearly a communication problem here. Maybe I’m not using the >>>>>> correct word. >>>>>> >>>>>> I want to know how to make an App Extension from QtCreator. In summary: >>>>>> >>>>>> - In order to create an app extension with Qt Creator what should be the >>>>>> qmake flags? >>>>>> >>>>>> I want to bypass Xcode. Is this possible? >>>>>> >>>>>> Regards, >>>>>> >>>>>> Nuno >>>>>> >>>>>>> On 21 May 2017, at 10:12, Robert Iakobashvili <corobe...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>> Yes, you can add frameworks to an extension like to >>>>>>> any other project in XCode. >>>>>>> >>>>>>> So it can look like: >>>>>>> >>>>>>> Swift GUI <-> Obj-C-Bridging Code <-> C++ business logic using your >>>>>>> frameworks/components. >>>>>>> >>>>>>> But do not forget the memory limit - 30 MB. >>>>>>> >>>>>>> Take care. >>>>>>> >>>>>>> Kind regards, >>>>>>> Robert >>>>>>> >>>>>>> >>>>>>> On Sun, May 21, 2017 at 12:02 PM, Robert Iakobashvili >>>>>>> <corobe...@gmail.com> wrote: >>>>>>>> Dear Nuno, >>>>>>>> Whatever I did was completely decoupled from Qt. >>>>>>>> >>>>>>>> Only XCode project - it was an app with its bundle and within an app >>>>>>>> it was a sub-app bundle. >>>>>>>> >>>>>>>> But there are many types of extensions. >>>>>>>> >>>>>>>> So, starting from an example of your extension and extending >>>>>>>> it could be the right path. >>>>>>>> >>>>>>>> If you find you still have memory up to 30 MB, you can link >>>>>>>> QtCore if it helps you. >>>>>>>> >>>>>>>> Your business logic could be in C++ and Swift interface can talk back >>>>>>>> and forth with C++ via an objective-C Bridge - even with debugging >>>>>>>> going smoothly between the pieces. >>>>>>>> >>>>>>>> Sorry for being not too much helpful with a Qt-path. >>>>>>>> Kind regards, >>>>>>>> Robert >>>>>>>> >>>>>>>> >>>>>>>> On Sun, May 21, 2017 at 11:51 AM, Nuno Santos >>>>>>>> <nunosan...@imaginando.pt> wrote: >>>>>>>>> Robert, >>>>>>>>> >>>>>>>>> Right now I’m more interested in how to put things together. >>>>>>>>> >>>>>>>>> Were you able to do it? >>>>>>>>> >>>>>>>>> Where are you coding the extension? With Qt Creator or Xcode? >>>>>>>>> >>>>>>>>> How are you setting the project? >>>>>>>>> >>>>>>>>> Can the app extension be deployed as a plugin? Like a .component? A >>>>>>>>> dynamic >>>>>>>>> library packed in a bundle? >>>>>>>>> >>>>>>>>> Because I have already done a AudioUnit in the past and I can make it >>>>>>>>> with >>>>>>>>> Qt using the following flags: >>>>>>>>> >>>>>>>>> CONFIG += lib_bundle shared >>>>>>>>> >>>>>>>>> The thing is that QtCreator doesn’t handle the packaging so I have to >>>>>>>>> manually do everything. >>>>>>>>> >>>>>>>>> But as for App Extensions I don’t know exactly what they are. I have >>>>>>>>> a Xcode >>>>>>>>> example but with Xcode is always hard to decipher how things were >>>>>>>>> made. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> >>>>>>>>> Nuno >>>>>>>>> >>>>>>>>> On 21 May 2017, at 05:20, Robert Iakobashvili <corobe...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> On Sat, May 20, 2017 at 7:54 PM, Nuno Santos >>>>>>>>> <nunosan...@imaginando.pt> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> HI, >>>>>>>>> >>>>>>>>> I’m trying to develop an app extension for my Qt iOS app but I don’t >>>>>>>>> know >>>>>>>>> what kind of target it is. >>>>>>>>> >>>>>>>>> I always try to use Qt Creator to handle my Qt based projects. In >>>>>>>>> case of >>>>>>>>> iOS projects I try to use only Xcode to deployment and debug. >>>>>>>>> >>>>>>>>> Is an app extension a framework or a executable? >>>>>>>>> >>>>>>>>> As anyone tried this before? >>>>>>>>> >>>>>>>>> I want to know how to configure the app extension on Qt Creator .pro >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> >>>>>>>>> Nuno >>>>>>>>> >>>>>>>>> >>>>>>>>> Hi Nuno, >>>>>>>>> When doing it recently, it appears that there's a unpublished memory >>>>>>>>> limit of up to 30 MB imposed by Apple that an extension is allowed. >>>>>>>>> >>>>>>>>> Initially, I was planning to use Swift interface with QtCore classes >>>>>>>>> in my >>>>>>>>> core logic connected by an Objective-C Bridge. >>>>>>>>> >>>>>>>>> However, due to the memory limitations, I've migrated from Qt to >>>>>>>>> some C-written hash maps, etc containers with less pointers and less >>>>>>>>> consumption of memory. >>>>>>>>> >>>>>>>>> Take care. >>>>>>>>> >>>>>>>>> Kind regards, >>>>>>>>> Robert >>>>>>>>> >>>>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Interest mailing list >>>>>> Interest@qt-project.org >>>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>> >>>>> -- >>>>> Mike Krus | mike.k...@kdab.com | Senior Software Engineer >>>>> KDAB (UK) Ltd., a KDAB Group company >>>>> Tel: UK Office +44 1625 809908 Mobile +44 7833 491941 >>>>> KDAB - The Qt Experts >>>>> >>>> >>> >>> -- >>> Mike Krus | mike.k...@kdab.com | Senior Software Engineer >>> KDAB (UK) Ltd., a KDAB Group company >>> Tel: UK Office +44 1625 809908 Mobile +44 7833 491941 >>> KDAB - The Qt Experts >> >> _______________________________________________ >> Interest mailing list >> Interest@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > -- > Jake Petroules - jake.petrou...@qt.io > The Qt Company - Silicon Valley > Qbs build tool evangelist - qbs.io > _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest