

Hans♫
-
Content Count
140 -
Joined
-
Last visited
-
Days Won
5
Posts posted by Hans♫
-
-
5 hours ago, lefjucabro said:I had to get iOSapi.AudioUnit.pas, iOSapi.CoreAudioTypes.pas and iOSapi.CoreMidi.pas which are declared in iOSapi.AudioToolbox.pas.
Sorry I didn't see that. I have sent a PM with those headers too.
However, there are a lot of details to figure out before you can achieve what you want. Having the headers is just a small part of it. With a lot of Googling, reading and persistence - eventually you will get through 😉 Keep up the spirit!
-
2 hours ago, lefjucabro said:... (I really am a beginner). If you have a link to explain it or send me your file if it is ok for you.
If have sent a PM with the file, but you are far from done having this file. The best advice is to find code in Objective-C that does what you want, and then convert it to Delphi - which might include a few headaches.
-
All the AudioQueue... functions are in iOSapi.AudioToolbox. Do you know how to convert the SDK headers your self? - or else I can send you my version of the file.
-
We have developed a low-level audio input solution for Windows, MacOS and iOS. It allows us to process audio immediately when each buffer is filled and delivered to our code. I cannot share my code here, but here are some hints of the API functions we use on iOS:
AudioQueueNewInput
AudioQueueAllocateBuffer
AudioQueueEnqueueBuffer
AudioQueueStart
AudioQueueStop
-
2
-
-
I suppose the problem you have is the one described here:
-
1
-
-
11 minutes ago, MikeMon said:... and use an Xcode storyboard to provide the app’s launch screen.
Thanks, I got that email too, but obviously missed the part about the storyboard 🙂
-
2 hours ago, MikeMon said:How come there's nothing in forums about this? How are other Delphi users developing for iOS tackling this? The above solution doesn't feel right.
I don't know when (or if) Apple will make it a requirement to use the Storyboard, but so far you can still use the old way that Delphi supports right now. We are not using the storyboard solution in our app, and that is still accepted by Apple. Its only one week ago we uploaded the last update.
-
Is there a confusion between "App Store" and "Mac App Store" somewhere?
The error message contains both "Mobile" and "App Store", which refers to iOS, not MacOS.
Our App is on Mac App Store now, though we use our own shell scripts to sign and build the final application package.
-
On Firemonkey there is a problem loading fonts dynamically, so maybe its related to that?
-
13 minutes ago, MikeMon said:Is that enough to use Facebook functionality in an app? e.g. login with facebook, etc...
I haven't investigated their REST API, so I don't know how much functionality it implements compared to the SDK.
-
12 hours ago, Dave Nottage said:There's someone in another post here asking about whether there are updated imports for the FB SDK.
I didn't answer this one because the steps to include the FB SDK is pretty much the same as mentioned in the GRIJJY blog. Though I never needed to fix anything regarding Delegates, so depending on your needs, this pretty long part can be skipped.
Also, my first implementation of the FB SDK was made in 2015-16, before anyone else had published solutions for it. My implementation is much simpler and focus only on the areas that I needed my self. Therefore it is not compatible with the GRIJJY source code.
However,
@MikeMon I'll be happy to share my headers and units to implement the Facebook API.
-
On 1/29/2020 at 10:04 PM, Dave Nottage said:If you're still having trouble, please look at line 175 here:
https://github.com/DelphiWorlds/KastriFree/blob/master/API/DW.iOSapi.Firebase.pas
Basically forces the linker to link to libclang_rt.ios.a, which has the "missing" symbol
Thanks Dave, it solved the problem!
I added the fake includer function to the FB SDK headers as you suggested:
procedure CLangRTLoader; cdecl; external '/usr/lib/clang/lib/darwin/libclang_rt.ios.a';
Now it links with the FBSDK 4.36 without problems, and after a few hours of work to adapt my code to the new API version, everything works!
(I didn't try newer versions for now, as they might require further updating of my code and headers)
-
1
-
-
It's all native. We use the TMS iCL components for the GUI, only the screen instruments are custom FMX components, wrapped by a FMX wrapper.
-
2
-
-
On 1/29/2020 at 10:04 PM, Dave Nottage said:If you're still having trouble, please look here
Thank you, I will have a look.
-
56 minutes ago, Rollo62 said:Congratiulations from my side too.
Thanks 🙂
57 minutes ago, Rollo62 said:May I ask: does FB has part in that success story ?
Did you make a special FB promotion, advertising to get there ?
I don't think that our FB activities have had any influence on Apples decision to feature EarMaster.
From my point of view, FB advertising is useful if you have a free app and it targets something that people have a personal interest in.
When you are viewing you FB news thread, you are not in "commercial mode", but instead you can easily be attracted by an add about something you are passionate about.
It's however important to submit all in-app purchases to FB, so you can calculate the ROI, which is what we mainly use our FB integration for.
-
1
-
-
Yes, we released a new build 2 weeks ago, which is the first one made with Delphi 10.3.3. So far the crashes are lower than the build with Delphi 10.3.2.
In return, the new build has been featured on App Store, so I believe that Apple is quite satisfied 🙂
-
2
-
-
2 hours ago, sakura said:German store has ist too.
Congrats!
Thanks! - and great to know that its in Germany too 😄
-
Our iOS app, EarMaster, made with Delphi is now featured in App Store, in the "Best of the month - New apps we love".
Nice to see that a Delphi app can get this kind of approval from Apple.
PS. I am in Denmark, so I see the Danish app store, but I am curious to know, in what other countries it has been featured too?
-
11
-
1
-
-
Yes, I have seen it and it looks great. It could probably have helped me in other situations. However, my problem in this post was not that I couldn't find where it crashes. The problem was that it happened in random places, though always when allocating an Objective-C wrapper.
-
Thanks a lot Dave for looking into this!
I removed the [Weak] attribute in the test program, but it still crashes regularly, though it does seem to increase the probability of success.
When I have a successful request and then perform the same request again, then I also get an AV. It seems like the AppStore request messes up some memory. Sometimes it is in an area that prevents us from finishing the request, and sometimes it is a different place that will allow a successful request, but will cause problems later. Also, if I run the test program directly from the ScratchDir on the Mac, then it is never successful and crashes every time.
It's strange that the Objective-C wrapping seems to work all other places, but not here...
-
Maybe this is a bug in the OSX64 compiler? I have attached the small test project that produces the error. It should compile and run out of the box.
Are there someone out there with the knowledge needed to look into this, that I could hire to solve this?
I see only two outcomes: Either some code in the test project can be changed to solve it, or a bug report should be filed to Embarcadero.
-
The FMX.InAppPurchase component already implements in-app purchase for iOS, and since OSX uses the same StoreKit library, I simply added an OSX copy of the iOS implementation and adjusted it to "work" on OSX. It works as far as it compiles and runs, and I can call "QueryProducts", which also initiates a Delegate callback.
Once in a while I can even successfully read the product details from App Store that I receive in the callback, but most of the time the callback fails with an AV. It seems to be random where it fails. If I restart paserver before each run I can increase the chance that it works, but except from that I did not find any correlation between changes I have made and a successful request.The testprogram works fine on iOS. On OSX I have tried to target both Mojave and Cataline, and both 32 bit and 64 bit editions. They all fail.
As the OSX code is the same as the iOS code, I guess that the problems are related to differences between the iOS and the OSX target in the Objective-C handling and wrapping.
Any ideas what could be wrong, or what I should try?
(or maybesomeone with more knowledge about Objective-C wrapping and the inner workings of Delphi could help me with this?)
Below are some extracts from the code in my new unit "FMX.InAppPurchase.Mac". My test program creates TiOSInAppPurchaseService and call QueryProducts. It works without errors, and a few seconds later the TiOSProductsRequestDelegate.productsRequest callback is called. From here random AV's happens. Usually it fails on the first line FIAPService.FProductList.Clear, and sometimes it fails earlier in "DispatchToDelphi" or later in one of the following lines.
TIAPProductList = class(TList<TProduct>) end; procedure TiOSInAppPurchaseService.QueryProducts(const ProductIDs: TStrings); var ProductIDsArray: NSMutableArray; ProductIDsSet: NSSet; ProductID: string; begin ProductIDsArray := TNSMutableArray.Create; for ProductID in ProductIDs do ProductIDsArray.addObject(PStrToNSStr(ProductID)); ProductIDsSet := TNSSet.Wrap(TNSSet.OCClass.setWithArray(ProductIDsArray)); FProductsRequest := TSKProductsRequest.Wrap(TSKProductsRequest.Alloc.initWithProductIdentifiers(ProductIDsSet)); ... FProductsRequest.setDelegate((FProductsRequestDelegate as ILocalObject).GetObjectID); FProductsRequest.start; end; constructor TiOSInAppPurchaseService.Create; begin ... FProductsRequestDelegate := TiOSProductsRequestDelegate.Create(Self); FProductList := TIAPProductList.Create; end; constructor TiOSProductsRequestDelegate.Create(const IAPService: TiOSInAppPurchaseService); begin inherited Create; FIAPService := IAPService; end; procedure TiOSProductsRequestDelegate.productsRequest(request: SKProductsRequest; didReceiveResponse: SKProductsResponse); begin FIAPService.FProductList.Clear; ... end;
-
5 minutes ago, ENord said:Hi, could you send me this file as well?
No problem. Send me an email, then I will send it to you: hans[at]earmaster.com
Note that the file is built for Delphi 10.3.2 so it might not work with other versions.
-
Sorry that I did not make my self clear. I was commenting on your post about how to get Application Loader.
Controlling Canon EOS cameras
in Delphi IDE and APIs
Posted
I made Delphi headers for the Canon SDK about 20 years ago. It allowed me to connect to the camera, show live preview, zoom, take pictures and download the pictures into my software. Don't know if the headers are of any use with the current SDK, but if you want to try, you can get it. No support included 😉