Problem with document scanner plugin: extra dependencies add on time of build - ionic-framework

I have a problem with the ionic react document scanner, as I build the app in some file extra dependency adds into that file and I have to remove that dependency to make application workable, otherwise, it won’t work.
Here is the path of extra dependency, it's showing file not found:
/Users/ionic/builds/project-0/ios/capacitor-cordova-ios-plugins/sources/CordovaPluginDocumentScanner/src/ios/IRLDocumentScanner.framework/PrivateHeaders/IRLCameraView.h:14:9:
'IRLScannerViewController.h' file not found
Now, important thing is that I am sending the code to the client and he makes build from the ionic hub and he is not able to comment or remove that dependency from the ionic hub as he builds on ionic hub dependency came and he can’t remove it, now I’m not being able to find the solution of this issue from the previous week.
Any help will be appreciated

I changed
#import "IRLScannerViewController.h"
to
#import <IRLDocumentScanner.h/IRLScannerViewController.h>
IRLDocumentScanner.h file

Related

No such module 'IQKeyboardManagerSwift'

New to Xcode (dabble a little). I paid a developer to build an iOS app for me. He sent me the source code and I have opened it in Xcode 13.2.1. I needed to edit the info.plist to include a description why location was required (got this done). When I try to run the build, I get the error 'no such module 'IQKeyboardManagerSwift'. In AppDelegate, I see 'import IQKeyboardManagerSwift --- No such module 'IQKeyboardManagerSwift'. I went to the Podfile directory and ran 'pod install'. Output says:
Analyzing dependencies
Downloading dependencies
Generating Pods project
Integrating client project
Pod installation complete! There are 7 dependencies from the Podfile and 8 total pods installed.
I'm still getting the error when trying to run the build. I tried cleaning the build folder and running the build again but still, same error. What am I missing?
I'm not sure why this happens, but one way to solve your issue is to go into your build settings and define the Framework Search Paths to a folder that contains the frameworks in question. If the frameworks are placed in your project directory, simply set the framework search path to $(SRCROOT) and set it to recursive.
Is the codebase completely in Swift?, else you will have to include import in the Bridging header file
If in swift you can try:
Select project name -> Select Build Settings(tab) and search Framework Search Paths double click and set the desired path($(SRCROOT)) to recursive
The missing module handles a number of keyboard behaviors so you don't have to reinvent that wheel. Check out the developer's website and get it for yourself. I've been using it for years. The developer has helped me more than once get past some obstacles.

How do I determine why the temp files are not being created?

Update: While a root cause has not been determined for these errors. I have been able to fix my issues via reimporting and reinstalling the Google AdMob Manual SDK all together.
New to this whole Stackoverflow, not sure if I should make that as the answer?
I'm attempting to install the Google AdMob module into my SwiftUI iOS application using the Manual SDK method located on their documentation page. The project throws no errors until I build the project, at that time it tells me "Build Succeeded" then tells me the below error. When I navigate to the path, I can get to the following directory however, there is no further file there...
/Users/PROFILE/Library/Developer/CoreSimulator/Devices/DEVICE_UUID/data/Library/Caches/com.apple.mobile.installd.staging
I have ensure that the Info.plist is in the directory. I have also verified that the path is proper via the Build Settings.
Please try again later.
Failed to load Info.plist from bundle at path /Users/PROFILE/Library/Developer/CoreSimulator/Devices/DEVICE_UUID/data/Library/Caches/com.apple.mobile.installd.staging/temp.z14Qmt/extracted/HealthCalc.app/Frameworks/GoogleMobileAds.framework;
Extra info about "/Users/PROFILE/Library/Developer/CoreSimulator/Devices/DEVICE_UUID/data/Library/Caches/com.apple.mobile.installd.staging/temp.z14Qmt/extracted/HealthCalc.app/Frameworks/GoogleMobileAds.framework/Info.plist":
Couldn't stat /Users/PROFILE/Library/Developer/CoreSimulator/Devices/DEVICE_UUID/data/Library/Caches/com.apple.mobile.installd.staging/temp.z14Qmt/extracted/HealthCalc.app/Frameworks/GoogleMobileAds.framework/Info.plist: No such file or directory
While a root cause has not been determined for these errors. I have been able to fix my issues via reimporting and reinstalling the Google AdMob Manual SDK all together.
In doing so I followed the Manual SDK Instructions, particularly I believe the root issue was some funky indentation or mishap in the Info.plist. That being said, if you run into a similar issue, I urge you to take a step back. Start a fresh blank project and attempt to implement the Google AdMob procedures in the blank project. This will eliminate the concern that your current code is causing any conflicts. Once completed and you have it working, mimic the steps within your core project.

Committing changes to /platforms/android/project.properties

To fix a recently problem with "com.google.android.gms.license" the recommended solution is to edit platforms/android/project.properties to specific the version of the libraries
old:
cordova.system.library.1=com.google.android.gms:play-services-auth:+
new:
cordova.system.library.1=com.google.android.gms:play-services-auth:11+
However the Ionic scaffolder deliberately out platforms/ into the .gitignore file so these changes will not be committed and shared to other dev. How/where should I make this change so that it persists?
You can use the cordova-android-play-services-gradle-release plugin to align the versions specified by various plugins during the Cordova build process so you don't need to modify/exclude platforms/android/project.properties:
cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=11+

Gradle Android SDK integration with Unity [duplicate]

My project uses these plugins:
OneSignal
GooglePlayServices
Adjust
Google Analytics
Unity IAP
Facebook SDK
Those plugins are used in almost every project.
But I am over field references count
This is my .aar file list
What should I do to decrease reference count?
So What should i do to decrease reference count ?
You have so many plugins with many functions/fields. There is a limit when building this from Unity's Editor and you have reached that limit.
To decrease reference count, you have to delete some these plugins but I am sure that you need them and deletion may not be the appropriate solution in this case.
The only way to actually get around this and build for Android at this moment is to export the Project as Android Project then build it with Android Studio. This removes the reference limit imposed by Unity's Editor.
EDIT
I forgot to mention that you have to enable multidex after exporting it out. Since many people go through this problem daily, I decided to add a thorough instruction on how to fix this problem by exporting it out and also how to fix it without exporting it.
FIX BY EXPORTING THE PROJECT
1A.Export the Unity Project as Android Project.
1B.Import into Android Studio:
If you get grade error when importing into Android Studio like the one below:
Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection
cannot be cast to
org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection
In the "dependencies" block which is in the "buildscript" block in the build.gradle file, change:
classpath 'com.android.tools.build.gradle.2.1.0'
to
classpath 'com.android.tools.build:gradle:2.2.3'
If you export the Project and still get the-same error, you need to manually enable multidex. Below is a simplified step to follow from Google's doc that will be shown to you in the error:
2.Add android:name="android.support.multidex.MultiDexApplication" > to the
application tag in the AndroidManifest.xml file.
3.Add compile 'com.android.support:multidex:1.0.1' to the "dependencies" block in the build.gradle file.
4.Add multiDexEnabled true to the "defaultConfig" block which is in the "android" block in the build.gradle file.
Build APK and see if it works. If the reference count error is gone, stop here.
5.Getting a GC overhead exception like the one below?
java.lang.OutOfMemoryError: GC overhead limit exceeded
Increase the heap size that will be used when performing dex operation. From this solution, add the following to the "android" block in the build.gradle file:
dexOptions {
javaMaxHeapSize "4g"
}
FIX WITHOUT EXPORTING THE PROJECT
Must have Unity 5.5 and above to do this:
1.Go to <UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates, Copy the mainTemplate.gradle file to your <ProjectName>Assets\Plugins\Android folder.
2.Go to <UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Apk, Copy the AndroidManifest.xml file to your <ProjectName>Assets\Plugins\Android
3.Open both the mainTemplate.gradle and AndroidManifest.xml file you just copied with Visual Studio then do the modification from the FIX BY EXPORTING THE PROJECT instruction above. Skip/Ignore step #1A and #1B. Just do steps from #2 to #5. That's it.
This is what the final mainTemplate.gradle should look like and this is what the final AndroidManifest.xml should look like. This is only for reference purposes. I suggest you don't use mine but instead follow the copy steps above to create yours because future Unity versions can come with different files. You want to make sure you use the latest one or you may have problems building it.
4.Build APK and see if it works:
--
If the reference count error is gone, stop here:
5.Getting an error like the one below?
Build Failure Release builds have to be signed when using Gradle
Just sign the apk from the Publishing Settings in the Build Settings. You can create new keystore or use an existing one.
6.Another error like below?
Error: Avoid hardcoding the debug mode; leaving it out allows debug
and release builds to automatically assign one [HardcodedDebugMode]
Remove android:debuggable="true"> from the AndroidManifest.xml file.
If this non exporting solution did not work for you then you have to
use the exporting solution.
IMO, The accepted answer isn't correct (or only partly correct). Exporting an Android studio will not "magically" fix this issue. Also, from my experience, the exported Android studio project does not always build right away and you have to fix lots of things before you can actually build it.
You are using lots of plugins and so you faced an Android limitation of not being able to reference more than 64k methods.
There are a few things you can try to solve this:
Delete some of these plugins, if possible (as already suggested in the accepted answer).
Use multidex. In the past this was only possible by exporting the project to Android studio and building it there. Starting with Unity 5.5 you can build your project using Gradle right from Unity. This means you can create a custom gradle file that configures your game to use Multidex. This doesn't reduce the method ref count, but it works around it by splitting your native Java count into multiple dex files.
Use ProGuard - since you can use Gradle from Unity, you can also define ProGuard to run and remove any code that is not used.

How can I fix this Android SDK build problem in Eclipse?

I am using Eclipse for Android dev and everything was going fine until I tried to incorporate the facebook SDK. Now when I tried to back it out, there appears to be an artifact left behind that Eclipse tries to link the FB library?!?
[2010-11-17 18:50:22 - Library Project] Unable to set linked path var '_android_com.facebook.android' for library /Users/mobibob/Projects/workspace/facebook-android-sdk/facebook: Path variable name cannot contain character: ..
Any clue where this command / reference is in the build configuration? I have scoured it as best that I can, but I still get the same error.
Problem solved ... as it turns out, it was not so much the Facebook SDK but something that I did in the process of configuring the library reference. I am not entirely certain of how I misconfigured, but I was tweaking the various "path" settings such that, once when the automatic build tried to build my project, an import for android.R was added to my source module. This superseded com.myproject.R and would not resolve the values for resource references.
There were other problems with path order and setting that I modified during the troubleshooting that made it worse. Recreating the project without Facebook was the first step to discovery and fixing.
Either way, the lesson I learned is that the build error messages can misdirect one to the configuration when the problem is in the source code.