When using Twilio iOS sdk and building Cordova app openssl crashes - ios

I am building a cordova app for iOS and I am using Twilio Plugin with the corresponding Twilio iOS SDK.
For some reason, after calling the setup method from Twilio plugin ( which then calls native code ), the app crashes.
Here is the link of stack trace:
The exception I get is EXC_BAD_ACCESS. I know that the problem may not be in cordova because i downloaded phonekit app and it does not crashes.
https://github.com/jconst/PhoneKit
This is cordova plugin I am using:
The method I call is : Twilio.Device.setup
From there, it will execute native code which is in TCPlugin.
jefflinwood - twilio_client_phonegap
I would appreciate any insight on the topic.
Unfortunately, I am still struggling with how to make both sdks work together. I am contacting opentok support to see if the can help.
(EDITED)

Problem Solved. Here is what was going on. I was using OpenTok plugin as well in my project. OpenTok also uses openssl which conflicts with the one used by twilio ( differente version).
I partialy solved this by removing openTok. Eventually Ill need to find a way to use both plugins.

The solution is simple. Just remove libssl references from project. That way, twilio will use opentok openssl libraries.
In my case, I delete libssl from twilio folder. I was using xCode and was not that simple to exclude it from project, since There is "search libraries path" which looks for all libraries.
Then if you are using Pods, make sure to do not use Pods.config, because it will also look for libssl library.
Hope that helps!

Related

How to resolve app validation "The app references non-public selectors in Payload/MyApp.app/MyApp: _setAlwaysRunsAtForegroundPriority:"?

Just days ago I successfully upload Ionic app to Apple Store, and on this day I am receiving validation warning:
The app references non-public selectors in Payload/something.app/something: _setAlwaysRunsAtForegroundPriority:
While I was unable to resolve, I was able to upload app to App Store.
Does anyone know where it is documented or have any insights on how to resolve?
Thanks.
Expanding on #Véger Lóránd answer:
The bug was re-introduced in the 4.1.1 version. Installing the latest version will get your app rejected.
The solution for now is:
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview#4.1.0
I got a similar problem:
ITMS-90338: Non-public API usage - The app references non-public selectors in MyAppName: _setAlwaysRunsAtForegroundPriority:.
And the issue was caused by the following plugin: cordova-plugin-ionic-webview
To solve the issue update to the latest version with the following commands:
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview#latest
You can read more about it here: https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/209
This worked
The problem is related to webview.
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview#latest
this is only security warning caused by webview. you can ignore
rejected on Appstore now. July 3th 2019.
Message:
We identified one or more issues with a recent delivery for your app, "appname. Please correct the following issues, then upload again. ITMS-90338: Non-public API usage - The app references non-public selectors in Sonnenbraeu: _setAlwaysRunsAtForegroundPriority:. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above ...
I removed the complete line of _setAlwaysRunsAtForegroundPriority: as described above from code. Also the references to it. And yes, the app got released. BUT I don't know exactly the consequence of removing the property which sets the browser to foreground priority mode. I don't think its a good solution, its just a provisoric workaround to get released.
ITMS-90338: Non-public API usage - The app references non-public selectors in XXXXXX: _setAlwaysRunsAtForegroundPriority:. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to appreview#apple.com.
cordova plugin rm cordova-plugin-ionic-webview cordova plugin add
cordova-plugin-ionic-webview#latest

Flash Builder SDK issues

So I needed to install a new SDK to use the Compass ANE that I purchased. Which I did and the issue that I had with it was that the "TabbedViewNavigatorApplication" was not a supported component. So, after some research, the problem was with the new framework file. I took the framework file from the original 4.6.0 (file location shown below):
C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks
and put that in the new SDK file. This fixed this issue but now I have another issue where the old code I had working has now broken.
GeolocationEvent.UPDATE is no longer being called
Camera.setMode() causes a crash
UIComponent.addChild(Video) causes a crash
I am able to run the program with no errors.
Event is not being triggered for Geolocation in Flex
This person had a similar problem to me and he says he fixed his issue but I can't work out what he did:
I worked out the ultimate cause of this specific problem. It stems from Flash Builder not installing the complete Android SDK or the IOS SDK. Once I manually installed these by copying the SDK folders to their correct paths in Adobe Flash Builder, my GPS events were called successfully.
To sum up, if you get this trouble where the code and everything looks alright but it wont call up your events, then check to make sure that your latest SDKs for Flex are installed correctly for Android and or iOS
I haven't done any work with flex SDKs and if anyone can either recommend a place to download one which supports these features or has any advice on how to fix my issue I would be most grateful.
Solved issue. In case anyone looks for this, my old SDK would allow me to run the app from a device without requesting for permission for geolocation event. The new SDk forces you to use the permission status event.
Makes sense to me now. Just wish I had an error pop up asking for permission rather than just doing nothing.

Why am I getting 'Braintree/BTUICTAControl.h' file not found error on Braintree manual integration?

I get the following build error after implementing step number four "Add the Braintree SDK code to project" from the Manual Integration Without CocoaPods guide.
braintree_ios/Braintree/UI/Braintree-Payments-UI.h:3:9: 'Braintree/BTUICTAControl.h' file not found
Tested in
New Objective-C iOS app project.
In Xcode 6.1 (6A1042b) and 6.3 (6D543q)
How can I fix this build error?
I work on the Braintree iOS SDK.
I believe using the name Braintree instead of Braintree SDK for the framework target name will resolve this particular issue. I recently updated the manual docs accordingly.
We recommend that you integrate using CocoaPods if at all possible, as it handles all this complexity for you.
Note also that I've responded on the issue you posted on GitHub. Let's resolve this there. Thanks!
Have you tried manually downloading the zip file and not using git?
Try following the second bullet point from the first step.

I do not know failure validation app in xcode

I'm getting the following error when validating my application in xcode and know if it is allowed or not occupy this plugin in a hybrid application with phonegap.
The problem is that if I delete any reference to this library lose my app notifications, anyone know how to fix it? I have extremely troubled this.
If you are using the urbanairship plugin, make sure you are using the latest version and contact urban airship team. If you are not using it, remove the plugin. Make sure you clean the project after removing the plugin.

Building Facebook With Latest iOS SDK for ARC and Multiple Developers

I'm attempting to upgrade from Facebook SDK 2.0 to 3.0 and I'm having basically the same issue as is mentioned in this thread: XCode & Facebook IOS SDK - Instructions incorrect but with a slightly different goal I think.
I'm using the instructions here: http://developers.facebook.com/docs/mobile/ios/build/
When I try to build the static library, I get a "no such file or directory" message. I checked, and sure enough, there is no build_facebook_ios_sdk_static_lib.sh file in the "scripts" directory when I try to execute it.
Here's my dilemma. We have multiple developers on the project (and some other members who basically know how to pull down and build within Xcode but that's about it), and I don't want to require all of them to install the Facebook SDK. Same for a build machine (though in that instance I suppose we could install the SDK directly on the build machine).
It sounds like building a static library has been effectively deprecated, or maybe I'm missing something, but what I really need to just get all the pertinent code into our repository, and in a form in which anyone can just pull it down and build. Is this possible with the 3.0 SDK, and if so, what would be the steps to do that?
Thanks!
For the Facebook SDK 3.1 (latest from 3.0) you should not follow the old instructions, instead check these instructions out:
https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/

Resources