How do you build and use the plcrashreporter in XCode 3? - ios

How do you build and use the http://code.google.com/p/plcrashreporter/ PL Crash reporter tools for iOS in Xcode 3?
I downloaded the Google code project and it is the most complicated and confusing X-Code project I've ever seen. What are the artifacts to build or copy out of the project to use in your own project to report code?
I built a simpler catch/email tool, but it doesn't give me the state of other threads. Does anyone have a simple tutorial or explanation of how to use the more advanced features of the PLcrashreporter tool?

The target used to build the disk image is 'Disk Image'; this will build the Mac OS X and iOS frameworks, documentation, and a standalone release disk image.
If you want to build the framework alone, the 'CrashReporter' target will build the iOS and Mac OS X frameworks, and the 'CrashReporter-iOS' target will build just the iOS framework.
You might need to hold down the option key and select 'Use Base SDK' when selecting the above build targets.

Related

How do I build native C source code to create a library for Unity, to be used for iOs Platform?

I want to import a library from native C source code to be used Unity, for iOs. I expect to require the .a binaries and the .h header (and any other file required if I'm missing any), but I cannot find any guide around about how to build it.
I tried to build the source code directly on Xcode, but I was not able to create a library from that. XCode accepts native C only with command line project, while I need a library.
Then I tried to run this CMake command on mac terminal:
cmake . -DCMAKE_SYSTEM_NAME=iOS "-DCMAKE_OSX_ARCHITECTURES=arm64;arm64e" -DCMAKE_OSX_DEPLOYMENT_TARGET=9.3 -DENET_STATIC=1 -DENET_LZ4=1 -GXcode
This creates an Xcode project, I build it for generic IOS but the code does not work on unity when I deploy it on the device.
A good place to start is the Bonjour example from the Unity Manual. This at least gives you a working iOS plugin as a starting point.
You include the files in your Unity project, and build for iOS. You will notice that the files under Plugins/iOS are automatically included in the generated Xcode project. They will only be compiled when you build/run your Xcode project.
Careful, an iOS plugin is not the same as a MacOS plugin. For a MacOS plugin, you will need to create the bundle and include this into your UnityProject. The DllImport decorator will also be different on your C# code. For iOS it is "__Internal", but for MacOS it is the name of the bundle.
If you are trying to interface with a third party library, you may need to manually modify the library search paths of your Xcode project to correctly locate your .a and .h files when building and linking.
As a side note, when including a third party .a binary, verify that it conforms to the iOS architecture requirements, otherwise your app may be rejected when submitting to the app-store.

Submit to App Store issues: Unsupported Architecture x86_64,i386 (IBMMobileFirstPlatformFoundation.framework) +IONIC 2 + IBM MFP 8.0

I'm getting these error when upload to appstore.
I had added the IBMMobileFirstPlatformFoundation.framework in Targets => General => Embedded Binaries. (By default it is there in Linked Framework and Libraries)
If I remove IBMMobileFirstPlatformFoundation.framework from Embedded Libraries (By default it is there in Linked Framework and Libraries), Build will success, but App will crash.
I had tried http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/
Please see the screen, is it correct?
I could take adhoc build,
I'm using Ionic version 2 and IBM MFP 8.0. and
cordova-plugin-mfp 8.0.2017060910 "IBM MobileFirst Platform Foundation"
Please help me to solve this
Thanks
I had the same issue while using another framework ("Intercom"). I was also adding it in embedded binaries and the run script to select the correct architecture. The solution that worked for me is -
Remove the corresponding framework and run-scripts that are creating the problem. Then compile and run the code.
Add the embedded framework first and then add the run-script. Please make sure the order in the build phases should be like the embedded framework above the run script which you use to select the correct architecture.
This worked for m, I hope this will help you too.

How to build a Framework fat binary (all archs) that still compatible with archive and upload to AppStore?

I've built a Framework for distribution (not open source),everything is working despite Xcode not having a nice support for developing Frameworks.
The problem is that when archiving for AppStore you get the error:
The executable <EXECUTABLE_NAME_AND_PATH>.framework contains unsupported architectures[x86_64,i386]
The solution to the error above is to strip out the architectures mentioned, as already discussed in this question and in other sources as well.
The problem is that to use the binary on Xcode it is necessary to have all architectures, but to archive I cannot have all of them. How to build the framework in a way that it contains all the architectures (or in a way that simulators accept it) and still be able to archive and upload to AppStore without using the custom scripts to strip the exceeding architectures?
It looks like you need to build two fat libraries, one for development and another one for deployment.
This way you can create two targets into your project (you can duplicate the existing target). One target will be used for development and be linked with the full framework. The other target will be used for archiving and will be linked to the reduced framework.
Hoping this helps...

Force Xcode to build with specific .framework

I have a target that links with a framework (both of which I develop). If I build the target it builds the framework before hand for use in the target.
What I want during certain builds is to bring in an existing already built version of that framework and use it during the build of that target. Is there a way to force xcode to build using an already compiled version of a dependant framework
(The reason I'm doing this is because I have multiple targets that are built separately and want them all to be built using the same framework binary)
I finally solved this, this can be done by turning off the "Find Implicit Dependencies" under your build scheme.
Some good reading can be found here on the topic here: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action

CorePlot support for arm64?

In Core-plot 1.4, I can use the pre-built Binaries/iOS/libCorePlot-CocoaTouch.a library in my iOS app, but only if I delete "arm64" as a valid architecture in BuildSettings/ValidArchitecture script.
Can I rebuild this library to include arm64 using Source/framework/CorePlot-CocoaTouch.xcodeproj, setting its BuildSetting/Architecture to arm64?
The same question applies to CorePlot1.5.1. In 1.5.1, where can I easily find the CorePlotHeaders folder, which conveniently is Binaries/iOS/ in 1.4.
When I build, I get the Debug products, but do not see Release products in places where Build Settings says they should be. What am I (still new'ish to Xcode5) missing?
Why would I want to include CorePlot as a dependent item, rather than simply include its static library in my Xcode project app? The latter is simpler.
Can I rebuild this library to include arm64 using Source/framework/CorePlot-CocoaTouch.xcodeproj, setting its BuildSetting/Architecture to arm64?
Yes. Build the "Universal Library" target to make a complete release binary with both device and simulator code.
The same question applies to CorePlot1.5.1. In 1.5.1, where can I easily find the CorePlotHeaders folder, which conveniently is Binaries/iOS/ in 1.4.
The headers are in the same place in the 1.5 and 1.5.1 release folders, too.
When I build, I get the Debug products, but do not see Release products in places where Build Settings says they should be. What am I (still new'ish to Xcode5) missing?
This is determined by the selected "scheme". By default, building or running makes a debug version while profiling or archiving makes a release version.
Why would I want to include CorePlot as a dependent item, rather than simply include its static library in my Xcode project app?
You would use the dependent library build if you were keeping up with the latest code from Github or using your own private fork. You can always build a static library from source (see question #1, above), but if the Core Plot code is changing often, its easier to include the project directly.

Resources