How to set Stripping Level for iOS in Unity - ios

Where can I find the option to set the Stripping Level for iOS? I couldn't find it in Build Settings -> Player Settings. I am using Unity 5.3.4.

iOS in Unity now uses IL2CPP instead of mono.
IL2CPP automatically strips unused stuff, so you can't customise it in the build settings anymore beyond the 'Strip Engine Code' tick box.
See the 'Stripping with IL2CPP' section of this document for more detailed information: iOS Optimisation

Related

How to remove the RoomPlan Debug Metal HUD in iOS 16?

The problem:
The console is filled with debug data making it impossible to log anything else.
The iPad screen shows a lot of metal HUD views making creating screenshots impossible.
What I have tried:
Setting the:
Scheme -> Diagnostics -> Metal: API Validation flag to false or (true)
Checking the docu for several RoomPlan classes and structs for words like:
debug, show, logging, log...
RoomCaptureSession.Configuration, RoomCaptureView
Running the app in the Release build configuration (since the Debug was set per default).
Several google searches
Use a different demo project to verify if the issue is project-specific.
Official Apple Demo Project
Screenshots:
Disable Metal Debug Data in Console
Go to Xcode 14.2 main menu:
Product – Scheme – Edit Scheme – Run (Debug) – Arguments and add environment variable.
// Name Value
OS_ACTIVITY_MODE = disable
Disable Metal Performance HUD
Product – Scheme – Edit Scheme – Run (Debug) – Diagnostics and disable two options:
Or, when Developer Mode is enabled, disable it in iPadOS under
Settings app – Developer (scroll down):

Google Maps iOS SDK Linking error "Undefined symbols for architecture arm64"

Please help I want to use Google Maps SDK
in the existing old project. I can't use Pods here.
I tried to add Google Maps SDK by manually
I follow the instruction from https://developers.google.com/maps/documentation/ios-sdk/start
it's error when linking binary.
Seems like you are missing 9th Point of Google Map manual Implementation
i.e ( Choose your project, rather than a specific target, and open the Build Settings tab. In the Other Linker Flags section, add -ObjC. If these settings are not visible, change the filter in the Build Settings bar from Basic to All. )
(Manual Intergration google map link https://developers.google.com/maps/documentation/ios-sdk/start)

Adding Framework and App Extension targets to IOS App project, am I doing it correctly?

I'm studying IOS/Swift development and I'd like to build an IOS app that in the future will have its own Today Extension. I've read that it is better to put the common logic (for example the logic that accesses Internet resources, performs some job on the result etc) between the App and its extension into a Custom Framework.. Since I think I'll need to change both Framework and App code during the development of the App, I'd like to avoid building the framework in a separate project, than use Show In Finder function to locate the framework bundle and then drag-and-dropping it within the App project.. So I'd like to know if this is the correct way to set up a Workspace with an App, the framework it uses and the Today Extension of the App:
Create a new Project with an IOS App target
Select the project in the Project Navigator and then Editor->Add Target... and specify a Cocoa Touch Framework
Editor->Add Target... and specify Today Extension
Add the framework in Linked Frameworks and Libraries
In this way I've seen that changes to the Framework sources do not need a Framework target recompilation, maybe because the project knows about the need to recompile framework sources even if I only build & run the IOS App target that uses that framework? Am I doing it right? I've seen that the Today Extension created in such way does not lists the framework in the Build Phases -> Target Dependencies while the IOS App does, but both of them correctly use the updated code of the Framework when I update it.
Then, I've noticed the following warning when I compile the project, but I don't know if it is related to the way I've setup the project:
ld: warning: linking against dylib not safe for use in application extensions: /Users/gianni/Library/Developer/Xcode/DerivedData/TestFrameworkApp-dshihhfiuepeqzddbnpgnfwilhem/Build/Products/Debug-iphonesimulator/TestFramework.framework/TestFramework
BTW is it normal that the entries within the Products folder are always red? Is it due to the fact that I build only for IOS Simulator since I don't have a Paid developer account that allows me to build for an IOS Device? Does this prevent me to build a framework that can be exported for some other Project since I can't find the Framework bundle with a right clicking on the framework product and selecting Show In Finder (and so I can't drag-and-drop it to another project)?
I hope I've been clear enough and that you'll point me in the right direction to understand what is the suggested way of starting my new project :)
It sounds to me like you're headed down the exact path I would take.
Regarding the warning you're seeing... I believe that checking the "Allow app extension API only" for your shared framework will supress that and cause build failures when you attempt to use a API that is not allowed in extensions.

Linker Error when using Google Play Services and Unity

I currently want to use Leaderboards from Google Play Services in Unity 5.
When I run the project on the device I receive a huge amount of linker errors:
I followed the instructions on https://github.com/playgameservices/play-games-plugin-for-unity#ios-setup. After the export I added the listed bundles and libraries. To be precise I have (dowloaded from https://developers.google.com/games/services/downloads/):
Play Games C++ SDK Version 1.4 (GoogleOpenSource.framework, GooglePlus.bundle, GooglePlus.framework)
Google-plus-ios-sdk-1.7.1 (gpg.framework, gpg.bundle)
I also made sure I set the -ObjC compiler flag. And I am sure I added the list of iOS libraries that are required by Google Play Services (AddressBook.framework, AssetsLibrary.framework, CoreData.framework, CoreTelephony.framework, CoreText.framework, Security.framework, libc++.dylib, libz.dylib). iOS Target is set to 7.0 and higher. You can see the library setup and bundle resources here (I cut of the non G+ libraries for a smaller graphic):
The errors seem to indicate a missing library. However I checked that the libraries are in the projects folder and linked in the binary libraries under Build Phases.
The only discrepancy between my setup and the documentation I could find is that there is no GooglePlayGames.bundle, but it now seems to be named gpg.bundle instead. However this should not result in linker errors.
Do you have any idea what could cause these errors?

Native code deployment on iOS

IIRC runtime compilation and linkage to JIT-ed native code is not allowed on iOS. I was wondering does it affect native code that was not compiled on the client machine but a remote build server and deployed and linked to internally. Is the problem "native code generated on the fly" or "native code that has not passed Apple's review process"?
As I know, there's no correct way to dynamic linking in iOS - it's prohibited by Apple.
Also look here please: Can you build dynamic libraries for iOS and load them at runtime?

Resources