AppThinning | Help you find large files | Animation library
kandi X-RAY | AppThinning Summary
kandi X-RAY | AppThinning Summary
Make app thinner. Help you find large files and compress png, gif, jpg, svg files.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of AppThinning
AppThinning Key Features
AppThinning Examples and Code Snippets
Community Discussions
Trending Discussions on AppThinning
QUESTION
Scenario
My project (codebase shared for iOS/watchOS/tvOS ) has build settings with ENABLE_BITCODE = YES
and takes advantage of fundamental libraries which are not yet supporting bitcode, although quoting Apple documentation in App Thinning
Bitcode is the default, but optional. For watchOS and tvOS apps, bitcode is required. If you provide bitcode, all apps and frameworks in the app bundle (all targets in the project) need to include bitcode
I am currently integrating those fundamental libraries with Carthage.
Problem
In order to have a clean build process, I tried to submit some pull requests to the respective owners for enabling the bitcode but, due to the complexity of their codebases, which are working for multiple operating systems/architectures, my pull requests are still in pending: so, to be able to build my own project, I still have to change manually their build settings.
Question
How can I short-circuit the Carthage process for injecting specific build settings (in this case ENABLE_BITCODE = YES
) into the relevant libraries?
ANSWER
Answered 2019-Apr-10 at 06:34I found a solution by making a shell script able to erase the disabling of bitcode, in case someone is facing or curious to solve a similar problem, the script is this:
QUESTION
We made an archive with Xcode 9.
We exported this archive with Xcode 9.
We successfully uploaded the app to iTunes Connect with Application Loader.
Yet, soon after, we got this message:
This bundle is invalid - Your archive contains paths that are not allowed: ( "AppThinning.plist" )
This was not happening with Xcode 8.
...ANSWER
Answered 2019-Apr-16 at 05:25QUESTION
I'm encountering a build error when I set 'Enable Bitcode' to 'YES' in the build settings of a project I'm currently working on. The error is:
ld: bitcode bundle could not be generated because '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/Debug-iphoneos/PROJECTNAME.build/Objects-normal/arm64/main.o' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/Debug-iphoneos/PROJECTNAME.build/Objects-normal/arm64/main.o' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
(I've redacted the project name to PROJECTNAME and a variant to PROJECT to post here.)
At first I though it could be due to one of the dependencies this project is using via Cocoapods but they all have 'Enable Bitcode' set to 'YES' and I'd expect to see the name of the offending library in the error message if that was the case. The project uses no frameworks other than those included via Cocoapods (and Apple frameworks).
I've tried deleting the derived data, restarting Xcode as well as clearing the build folder but the error persists.
I've also tried the '-fembed-bitcode-marker' solution as suggested for a similar problem here:
But I'm not building a static library but an app so perhaps unsurprising it made no difference.
The project is fairly large and has been developed since 2012 so includes Objective-C and Swift. It currently has iOS 8 as deployment target and 11.2 as base SDK. It's never had Bitcode enabled in any dev or production version in the past. We've got Bitcode enabled on similar but more recent projects. We're currently using Xcode 9.2 (9C40b).
I know I could set 'Enable Bitcode' to 'NO' for the project's build settings to 'fix' the error but I'd rather have bitcode enabled for the re-optimisations Apple can do once the binary is uploaded as mentioned here: Apple Docs - App Thinning
Am I missing a flag in the build settings that fixes this error or perhaps something else? Any advice is much appreciated!
Many thanks, Nick
...ANSWER
Answered 2018-Oct-27 at 12:36After updating to Xcode 10 we tried to generate a Bitcode bundle again for this project and (after trying different build configs) have been able to do so. The config that eventually worked for this project was:
For the Project's and Pod's Build Settings:
- 'Enable Bitcode' set to 'YES'
- Adding '-fembed-bitcode' to 'Other C Flags'
- Adding 'BITCODE_GENERATION_MODE' with the value 'bitcode'
These settings were needed for Debug as well as Release. This is because Debug would throw the 'bitcode could not be generated' error (see original question) if we tried to use the '-fembed-bitcode-marker' or 'marker' flags.
We'd have preferred to use the 'marker' variants for Debug as it's quicker to compile but at least we now have something that works!
QUESTION
I have created a project under Unity with the ARKit plugin.
I have used the right versions. I compile from Unity, compile from XCode, archive and sent the (.ipa) on iTunes connect.
But, I received this error :
...ANSWER
Answered 2017-Dec-05 at 12:38Please refer this answer fixed my problem
Dont uncheck the Strip Swift symbols
while uploading to AppStore
QUESTION
I have an iOS project that links to a universal static library (.a file), supporting both armv7 and arm64 architectures. When the app binary is sliced as part of App Thinning, does that process remove the unnecessary architectures from within the .a file? Or do I need to provide separate .a files for each architecture somehow to get this benefit in binary size (and if so, how do I do this)?
...ANSWER
Answered 2017-Aug-11 at 03:18Thinning should only link required archs.
From another static lib (includes link to Apple's doc on how to get App Thinning report):
The IndoorAtlas iOS SDK is a static library compiled for multiple architectures. Only required architectures are linked to the Thinned application. You may test the thinning results locally with these instruction: Testing Your iOS App - "The App Thinning Size Report file contains a summary of the sizes of all variants and the app-thinning.plist file contains more details."
Unlink the library, get baseline App Thinning Report. Link the library, get new report and compare them both.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install AppThinning
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page