What is the difference in .embeddedframework.zip and .framework? - ios

I am attempting to extend some functionality to a plugin designed for use in Unreal Engine 4. Using the documentation available and reviewing the solution I've encountered something I do not understand and cannot figure out a way to research it.
In this plugin, the original developer has 2 different files *.embeddedframework.zip, in each of these files there are some binary files, module maps, and *.h files. These *.h files are able to include iOS modules.
I have been able to create .framework builds using Xcode, unfortunately, the do not seem to contain the same format as the *.embeddedframework.zip file.
I apologize for the vague question; I'm new to iOS and I'm quite stumped, any leads whatsoever would be appreciated! (code available on request but it's really quite boilerplate)

YourFramework.embeddedframework.zip is just a zip archive of the Xcode products that takes the following form:
YourFramework.embeddedframework.zip
> YourFramework.embeddedframework/
> YourFramework.framework/
After you link it and build, you can verify that the unzipping worked by checking here:
/Users/Shared/Epic Games/UE_4.17/Engine/Intermediate/UnzippedFrameworks/

Related

How to compile `.framework` file?

I searched through existing Stackoverflow questions related to this problem but didn't find any help to solve it.
So here's the problem:
I am trying to integrate .framework file into the project but it's giving me an error saying that module compiles with 4.0.3 can't be imported by swift 5.0 compiler.
I wanted to know how to compile that.framework file? so that it will become compilable to swift 5.0
Please help if you come across such a problem.
Note: .framework file is created by a third-party developer
If the framework you're trying to integrate is binary only, then your best option is to check with the 3rd party developer regarding their support for Swift 5.0.
In case there are sources available, you can try checking if there is any work being done in their repository (usually a separate branch), or you can try forking the sources yourself.
Note that with the source option, you'll have access to possibly unstable and untested code, and depending on the experience I'd be very careful in this case.

27MB IPA with just GStreamer iOS Framework... how do I make much smaller?

I'm very interested in using GStreamer's iOS framework http://docs.gstreamer.com/display/GstSDK/Installing+for+iOS+development for video streaming, but when I add the framework to a blank project and add a few lines of code to take advantage of its powerful features, the final IPA is 27MB. This is just way to big to be adding to my project, what is the best way to go about stripping this down the the bare necessities as I'm sure I'm only using a small percent of the code that is included in the SDK.
Here's a pic showing the package contents of the IPA:
Thanks!
In the gst_ios_main.h you can disable all the plugins that you don't need (make sure to enable linker optimizations so that unused code is removed). If that's not enough, you can build your own stripped down version of the iOS binaries with http://cgit.freedesktop.org/gstreamer/cerbero/ (you need to remove things from the .package and .recipe files to only build what you need). Just disabling things from gst_ios_main.h should be enough in 99% of the cases though.
Note that by default you'll build applications for multiple architectures, as such the resulting application will be rather large. Depending on your use case you can drop some architectures.
On another note, gstreamer.com is providing an completely outdated version of GStreamer and is in no way related to the GStreamer project. The official website is http://gstreamer.freedesktop.org .
SDKs have their source code encapsulated away from you, the user. You get access only to header files. Thus you just can't extract some class from it because you don't have access to the implementation file.
Of course if this library is opensource you can attempt to isolate one class, but sometimes everything is so deeply connected, that it is close to impossible.

Invalid Binary in ItunesConnect on Xamarin Project

My Issue
Supported by the Xamarin guidance here http://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/app_distribution_overview/publishing_to_the_app_store/ I used the App Loader tool (recently downloaded version 3) and uploaded my .ipa file. Everything indicates success but after a few minutes, it moves from “uploaded” to “invalid binary”
I have checked stackoverflow and done a few suggestions ive double-checked all my image files and the build for 64 bit etc. Any help you can provide is appreciated.
Well since I dont have a 10 reputation I cannot post pics and i can only do one link, so I am going to upload this to my blog, I appreciate any help i can get please.
See complete issue explained here - http://www.fabiangwilliams.com/2015/03/13/troubleshooting-itunesconnect-invalid-binary-with-xamarin-project/
I've hit this issue twice, including a few days ago. In both cases the cause was that I included a bundle resource file (of my own proprietary format and definition) with the *.app extension. For some reason, Apple's validation choked on this. The hint was that the auto-generated email sent by iTunes Connect said something about requiring the zip extension. Red herring error message, but it jogged my memory that *.app is a "special" extension I can't use for my own stuff.
Just to be clear, this *.app file that caused an issue was buried inside my overall *.ipa file and its *.app directory. So you still need the standard format, you just need to be careful not to use Apple's extensions for your own proprietary data.

YouTube integration issue in iOS SDK

I am integrating YouTube in my app in which I have to login the user for authentication.I got a sample code that is working fine.When I started integrating that code in my app then I am getting some issues.
First:-
When I run the same code in a sample app I made then its telling GTLYouTube.h file missing.I am unable to know how that sample is working even though it does not have that file.
Second:-
Subsequently I added the downloaded file from svn checkout svn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/ google-api-objectivec-client-read-only and added the files in my app.
Then although the GTLYouTubeConstants.m is present as I can see in Services->Youtube->Generated I am getting error that GTLYouTubeConstants.m file not found.
I am unable to find while compiler is unable to find the file.Is there anything wrong in my implementation?
Finally I came up with the solution.I need to make a lot of changes in the code which I will write in steps so that it can be helpful for others.
The main problem I got in GTLYouTube_Sources.m,GTLCommon_Sources.m and GTLNetworking_Sources.m.When I used these files from the Sample App the files were missing and I was getting message like GTLYouTubeConstants.m file not found in GTLYouTube_Sources.m file.From the comments of developer in the GTLYouTube_Sources.m I came to know that I can't directly use these files.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
So I downloaded the files from svn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/google-api-objectivec-client-read-only and added the files in my app.Then again I got that error but when I removed the GTLYouTube_Sources.m,GTLCommon_Sources.m and GTLNetworking_Sources.m files form the project then the error gone(since I have already added the needed files).
Then again I got the duplicate symbol _OBJC_METACLASS_$ (linker error).Then I had to remove the GTLYouTube_Sources.m from Services->YouTube->Generated folder and the error gone.
I had made some other changes along with this:
I changed my header search path to same that used in Sample App.Also I changed my framework search path to $(SDKROOT)/Developer/Library/Frameworks $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) and I removed all the test files and didn't use any test framework as we can see in the downloaded files.
May be my solution is not proper but it let the code running so please suggest me any improvement needed.

Difficulties including c++ libraries in objective-c++ app

I'm having this annoying problem.
I'm doing an ios app in objective-c++. I'm coding the backbone of the app in c++ and the UI in objective-c, because the app is most likely going to be ported to Android (maybe also wp) at a later point. The setup works just fine... That is, until I want to include some c/c++ libraries.
The app is going to do a lot of requests to web services and therefore I've decided to include the libcurl library.
I have downloaded the library, configured it and "made" it and it is installing just fine in /usr/local/lib and /usr/local/include. I have added the libcurl.a/libcurl.dylib to the project, but here comes the problem:
When I want to include it in the .h or .cpp (or .mm) file it says that the file is missing fx.
#include "curl/curl.hpp" // -or similar according to library, always returns "file not found"
The intellisense is also not suggesting the files/libraries when typing. I have also tried with the libcurlpp and Poco libraries which all installs just fine and are added to the project just fine (via Build phases -> Link Binaries with Libraries), but is not recognized in the code.
I have also build libcurl specific for ios via this link:
http://home.comcast.net/~seiryu/libcurl-ios.html
and again everything is working regarding building and installing the library, but again I can't include it in the code...
I really hope it's just because I'm retarded at this and that it is some sort of setting I have missed or don't know about. Searched all over the web now and tried different solutions, all with the same result. I must be including the libraries wrong in some way...?
P.S. I've also tried adding the OS provided libcurl.4.dylib, with same result. Can't include it in the code.

Resources