When debugging USB using Apache Flex Compiled SDK - 14.16.16 I get the following error:
Error occurred while packaging the application:
ld: can't open -non_global_symbols_no_strip_list file:
/Users/CRMantra/AIR_14.16.16/lib/aot/lib/local_nostrip.arm-air.txt
Compilation failed while executing : ld64
__________ Found this relating to the platform.xml used in compiling the ANE. https://forums.adobe.com/thread/1220219
I have two questions:
1) I need the permissions for the Maps to throw a NativeDialog box using the requestLocationAuthorization(true) - so User will set permission normally.
2) Whats the recommended and tested SDK version for this ANE. Also, have you been able to set permissions via a Dialog Box from tested SDK? From my reading AIR 16 is the recommended version to set permissions and get around the Geo Object always muted issue. I did notice that NativeApplication.nativeApplication.executeInBackground = true; will fix the Geo.mute issue as well, but it still needs the above mentioned Native Dialog Box, and it requires user to set Privacy/Maps each run of the .ipa
Thanks,
B
I found if you copy the SDK to another location and dereference any symbolic links that the issue disappears.
i.e.
cp -RLf /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk SOME_OTHER_LOCATION
Related
I've run into this situation: the plugin and my code ran perfectly in Android, but in iOS these errors happened:
(Screenshot - my reputation is too low to post images. For easy reading I took the screenshot of VSCode debug console; the errors were the same while run it from Xcode)
https://user-images.githubusercontent.com/10349431/94634472-b2d42e80-0302-11eb-9dc7-fa2956511b82.png
It shows in the debug screenshot above exceptions took place while invoking method startMonitoring, but after I commented related codes it turned into other methods (e.g. stopMonitoring, addRegion, etc).
(BTW, the error messages may be as many as hundreds of lines - in the screenshot above, there were actually 381 lines of total error messages.)
My environment:
MacOS 10.15.7
iOS 12.4.8 (iPad) 13.3 (iPhone)
Android 8.0.0
Xcode 12.0.1 (12A7300)
VSCode 1.49.2
Android Studio 4.0.1 with all SDK after Android 5.1 Lollipop
Thanks for any help!
I got it... In this case, BeaconsPlugin.listenToBeacons should not be placed below addRegion or startMonitoring/stopMonitoring. It should be in the first line of all actions of this plugin in the initPlatformState scope, just like it has been in the example.
Sorry for dumb question.
This error mostly occurs when you try to Hot Reload or Hot Restart after just adding new package to your pubspec.yaml.
Just stop the running project(app) and then freshly run it again. So that the added package(which contains the implementations) also pushed to the device
please check : https://stackoverflow.com/a/60088062/11989529
and this : MissingPluginException while using plugin for flutter
the same problem
There are 2 main questions that I have.
We are currently having macbook with OS X (10.9.5), it is old indeed, but will it possible to use robot+appium+etc... with this OS? Compatible XCode app is v6.2 on this one. What I read on internet there's no actual information on which versions that works well.
We want to automate an internal app that is already installed on iphone (OS 10.3.3), is this possible to automate by knowing its bundleid? One of the parameter for open application is app (fill in the location). Can we disregard this value?
If anyone can pin point me to the possible answer, it would be really great.
your first question answer : i don't think MAC OSX version would be a problem for you, especially when you have a compatible Xcode app
Second question :
You can automate any app installed in phone (ios/android) with the information of desired capabilities. Here is a sample code to open an installed app in ios
*** Settings ***
Library AppiumLibrary #you need to install this
*** Variables ***
${APPIUM_SERVER1} http://0.0.0.0:4723/wd/hub
${APPIUM_SERVER2} http://0.0.0.0:4750/wd/hub
${app} com.apple.mobilephone #find package name of your app
${version} version=9.3
${platform} iOS
${deviceName} ${destdevice}
${udid} 81eddea4d7f5cea5b5da65b999369b52
${platformName} iOS
${name} My First Mobile Test
${automationName} XCUITest
${xcodeOrgId} 89E87VX
${xcodeSigningId} iPhone
${usePrebuiltWDA} True
*** Keywords ***
setup and open ios app
${iosdriver}= Open Application ${APPIUM_SERVER2} app=${app} version=${version} platform=${platform} deviceName=${deviceName} udid=${udid} platformName=${platformName} newCommandTimeout=2500
... name=${name} automationName=${automationName} xcodeOrgId=${xcodeOrgId} xcodeSigningId=${xcodeSigningId} usePrebuiltWDA=${usePrebuiltWDA}
Set Suite Variable ${iosdriver}
${app} is the desired capability where you provide package name, for more detail you can search how to find package name of ios apps.
I’m getting some strange log on console window while working on project. These are mentioned below :
nw_parameters_set_source_application Failed to convert from PID (0) to UUID. This could lead to wrong data usage accounting.
PAC Fetch failed with error [NSURLErrorDomain:-1003]
nw_proxy_resolver_create_parsed_array PAC evaluation error
I”ve checked below links but didn’t found any useful.
Link 1
Link 2
Note : I’m using Xcode 8.3.2 with iPhone 6 Plus device (iOS 10.3) and Swift 3 language in Project. It seems that there is no issue with this.
These logs appears all of sudden although there is no change in my code.
Most important thing is that my project is working as usual. So why I’m getting this issue?
Apart from this will there be an issue when app is uploaded on AppStore?
It's system logs that does not make sense in 99% cases. You should disable this logs in scheme settings
Click on scheme icon -> Edit Scheme -> Arguments -> Environment Variables
And add that variable:
The Xamarin debugging documentation indicates:
Use Xamarin Studio's native debugging support for debugging C# and
other managed languages code and use LLDB when you need to debug C,
C++ or Objective C codethat you might be linking with your Xamarin.iOS
project.
However I cannot find any documentation on how to use LLDB to debug a Xamarin app. If I run my app in the iPhone Simulator and try to attach to it using LLDB I get the following error:
(lldb) attach --pid 37993
Process 37993 exited with status = -1 (0xffffffff) lost connection
error: attach failed: lost connection
Attaching using Xcode doesn't work either. I tried different variations of attach but none of them worked.
Can someone point me in the correct direction on how to debug Xamarin apps with LLDB? Moreover is this something I could do on the device and not just in the simulator? I didn't find any information on how to use LLDB to attach to a process on a device.
Update
It looks like the debugserver process is crashing whenever I use lldb to connect to my binary. Here is a link to the crash report for debugserver:
https://www.dropbox.com/s/9lizhl2quj9n0cc/debugserver_2015-07-07-131423_gauss.crash?dl=0
Update 2
When I run dtruss on the app it prints the system calls till it encounters
dtrace: error on enabled probe ID 2475 (ID 194: syscall::ptrace:return): invalid user access in action #5 at DIF offset 0
which happens when something calls ptrace(PT_DENY_ATTACH, 0, 0, 0); Why is PT_DENY_ATTACH called?
Update 3
I traced the ptrace system call to this function: mono_assembly_init_with_opt which happens very early in the life of the program. All that function does is call ptrace, so if I just return early from that function, I can debug with lldb.
Basically, I can do:
(lldb) process attach --name AppName --waitfor
# when the process starts
(lldb) b mono_assembly_init_with_opt
(lldb) c
# when the thread breaks
(lldb) thread return 0
(lldb) c
and now I can happily debug with lldb.
But, I shouldn't have to do this. Is there something wrong with my project config (I can debug simpler apps with lldb) or is Xamarin being evil?
Codesigned apps on Mac OS X can only be debugged if they have a particular attribute set in their app plist. You want something that looks like:
<key>SecTaskAccess</key>
<array>
<string>allowed</string>
<string>debug</string>
</array>
You can look at the man page for taskgated for a somewhat terse description of this process.
Usually for Xcode projects, this attribute gets consed up and inserted into your debug builds by Xcode, so you don't need to do anything to get this to happen.
I don't know how Xamarin works, but it is possible that it is not setting this attribute. On older OS X systems, root can debug anything, so you could try sudo -s and then debugging from there. But starting with Yosemite, the request not to be debugged is being more broadly honored...
Have you tried using the pid from the Activity Monitor? Just type your app name into the search box in Activity Monitor when running it in Debug.
If it still doesnt work can you try just creating a new project and attaching to that just to rule out any project config.
This happens to be a limitation imposed by Xamarin in the trial version. After upgrading to a paid license, this is no longer an issue. Even though Xamarin's website says:
When you begin a Xamarin Trial, you get access to the full Xamarin
Business feature set for 30 days.
It's clearly not the full feature set since they explicitly disable attaching lldb to the app if you are using a native library. I'm not sure the reason for doing so, maybe someone from Xamarin can comment on it.
Explanation
Thanks to Jim Ingham for pointing me in the right direction. The way Xamarin events debuggers from attaching to the app is by calling ptrace with PT_DENY_ATTACH. This system call enables the process to deny requests for debugging. (Detailed Explanation).
Moreover rather than calling the ptrace function directly, Xamarin tries to hide the call by using the syscall method (link).
Workaround
If you really need to debug your app and are still using the trial version, here is a workaround. The ptrace system call is made in the function mono_assembly_init_with_opt which happens very early in the life of the program. That function doesn't do anything else and can be skipped. Since the function is called right in the beginning of the process, we need to attach lldb before the function is called.
The steps are as follows:
Start lldb and wait for the app to start.
When the app starts, add a break point for mono_assembly_init_with_opt
Resume the app and when it stops at that function, return early without executing that function.
After this you can use lldb or attach Xcode to the app and debug your native code as usual.
Steps in lldb:
(lldb) process attach --name AppName --waitfor
(lldb) b mono_assembly_init_with_opt
(lldb) c
# when the thread breaks
(lldb) thread return 0
(lldb) c
After successfully building and deploying the IBMAppCenter project, when attempting to download the IBM Application Center on iOS devices, there is no response when clicking on the actual installer link. This occurs on both real devices and through the simulator. Android application seems to be working just fine. I've provided a picture here showing some of the errors messages that we're seeing when clicking on 'IBM App Center iOS', as well as provided a subset of them below (http://i.imgur.com/vLrhVjT.jpg):
Deprecated attempt to access property 'changedTouches' on a non-TouchEvent object.
Deprecated attempt to access property 'target' on a non-Event object.
TypeError: undefined is not an object (evaluating 'a.target.getAttribute')
...
Deprecated attempt to access property 'which' on a non-UIEvent object.
App Center Console version 6.2.0.00-20140613-0730
IBM Worklight Studio version 6.2.0.1
Any idea what may be causing this, and how we can correct it? Thanks!
Make sure you are using a recent iFix of Worklight 6.2.0.x containing required Dojo fixes in order to add support for iOS 8 (which you are likely attempting to use the app on).
You can review the following tech note for instructions on downloading and installing the iFix: http://www-01.ibm.com/support/docview.wss?uid=swg21684538