Branch.io Cordova SDK not generating links - ios

I am trying to integrate Branch.io into my mobile app, mostly for the purpose of tracking and rewarding referrals. I have the plugin mostly working, but it is failing at the most important part, generating the links. The app successfully initiates Branch, creates a Universal Object and I get a confirmation alert every time the app opens. It also successfully opens the share sheet when I click the share button and fills in the message text, but it doesn't contain the link. I've also noticed that the Branch.io dashboard is not recognizing that I've integrated the SDK. I am using PhoneGap build 6.2.0 and Cordova Branch SDK version 2.6.0
Here is my the Branch snippet of my config.xml
<plugin name="branch-cordova-sdk" spec="^2.6.0" /><!-- If available via Cordova registry; consider changing to an NPM reference. -->
<branch-config>
<branch-key value="key_live_xxxx" />
<uri-scheme value="xxxx" />
<link-domain value="xxxx.app.link" />
<ios-team-release value="xxxx" />
</branch-config>
And here's a screen shot of the alert after creating a universal object and of the share sheet
Universal Object
Share Sheet

It Is the issue with PGB Service
i had same issue with my project also... i am taking build using phonegap build service. universal object is initializing but the link is not generating.. in ios 9.3 the Share sheet comes. but there is no link . in ios 10 even Share sheet is not opening
Try Using Mac with cordova my issue solved
check this link ..
https://forums.adobe.com/thread/2290461

Related

How to fix if App rejected for using UIWebView in code?

I have been trying to upload an iOS app to Appstore but its only appearing on "Activity" tab for 3-5 minutes and then disappears.
Then I got an email from Apple saying that my app is rejected because it is using UIWebView in one of the view controller. I deleted that particular screen and reuploaded the app and had the same error email.
Then I checked my third-party sdks like FacebookLoginSDK and GoogleSignInSDK and updated those and then checked that if the app has no UIWebView which it did not. Then i reuploaded the app but this time again I had the same error email. I have searched the whole storyboard source code and the whole app code to look that if there is any sign for UIWebView but there is nothing, but still I am getting this email.
I also tried deleting 'Derived Data' folder several times and cleaning the build folder also but nothing helps.
On the other hand I have uploaded a different app today which had UIWebView and it got approved but I also got the same email for not using UIWebView.
Does anybody had this kind of experience or can anybody tell me whats going on ?
I got the same issue before.
If you have uploaded the build and showing it in activity tab for few minutes then its not mean that issue is only about UIWebview but there can be some other issue as well.
I have uploaded my app n got the mail related to UIWebview, so I coverted the UIWebview to WKWebView and again I uploaded but that time same thing happend.
I failed to tackle the problem.
Then I mailed to Apple Developer Support and they replied like
Any of the third party library internally using some privacy data you should ask permission for the same.
Then I checked Info.plist, I have given each permission in list still how it comes that we don't understand.
Finally then after whole search the one third party library internally using motion related data without permission so this happened.
Then I have added that in plist and then again uploaded and its approved.
So please you can check your info.plist and also check whether your third party library using any privacy sensitive data without permission or not.
May it help you at some point.
Make sure you update all your plugins to the latest version!
Check this: https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation where you can find the plugins that have known issues concerning the old WebView usage.
But be aware that uninstalling and re-installing some plugins will NOT will not install the latest available version of the plugin!
So to be sure that you are re-installing the latest version of a plugin, go to the github repository of the cordova plugin and search for the plugin.xml file and open it. Then, copy the version string found in the root xml element.
Finally, install the plugin like that: ionic cordova plugin add plugin_name#copied_version
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-firebase" version="2.0.5"
xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>Google Firebase Plugin</name>
...
...
...
</plugin>
Are you using the AdMob plugin?
It is not enough to check for the absence of "UIWebView" strings!
You have to make sure that all third party plugins are up to date.
One of the trickiest situations I had went to is when I had tried to update an app (using AdMob) on the AppStore after Apple started rejecting apps using the UIWebView.
The generated iOS source code has no UIWebView references, but still rejected!
After a long headache, I realized that the Google AdMob SDK version I'm using is out of date, knowing that I had updated the AdMob plugin from the CLI, but it seems that the SDK is not updated when updating from the npm.
Finally, I had downloaded the latest AdMob SDK from this link https://developers.google.com/admob/ios/download and replaced it in the source code of the AdMob SDK plugin. Then I had followed the instructions found in this link https://developers.google.com/admob/ios/quick-start to update the code in the xCode.

Always getting +clicked_branch_link" false, really weird

I have integrated Branch SDK in my swift application and whenever I am installing the application through quick links, I am always getting +clicked_branch_link" : false, and that's why I can not add custom events to my application.
1) How to check custom events before iOS application goes live?
2) Is there any way to check deep linking in test builds?
Thanks in advance
The most common issue that can lead to this behavior is a mismatch between the Branch key used in the Project and the link that you are using. If you are using debug mode, make sure to use links from the test area of the dashboard. Once you fix the issue with +clicked branch link being false, you will be able to test deeplinking and custom events.
I am using branch.io in react native, I had the same issue on test mode, I have to declare TestMode=true in AndroidManifest.xml like code below.
In Android:
<meta-data android:name="io.branch.sdk.TestMode" android:value="true" />
Now Branch.io part looks as:
<meta-data android:name="io.branch.sdk.TestMode" android:value="true" />
<meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_lm3ztzvrR4sI0dKQ76Lq6nbcsEnMV1wp"/>
<meta-data android:name="io.branch.sdk.BranchKey.test" android:value="key_test_pbXCutzyH3rH0gGP772UgdmbCsnKM3yC"/>

allow-navigation isn't taking precedence over allow-intent on iOS

I generated an iOS and Android Pollyfill for my PWA app with PWAbuilder. It is working great on Android, but I'm running into an issue on the iOS one.
I want external links to open in the external browser, so I added this allow-intent:
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
This worked fine, if I click on any external link (not-under-my-domain.com), it opens in the external browser.
For opening my-domain.com within the app, I added
<allow-navigation hap-rule="yes" href="*://my-domain.com/*" />
According to the docs, allow-navigation should take precedence over allow-intent, but it does not seem to be working.
Then if I click on any link within my domain, such as /other-page, it opens in the external browser - which isn't expected, it should open within the app.
I would like to have any link not defined in allow-navigation to open in the external browser, and all others (under my-domain.com) within the app.
Any ideas?
So after all it seems the problem was with my outdated version of cordova. I upgraded the cordova version following #jcesarmobile's suggestion on the comments and it is working now.
npm install cordova -g
cordova plugin save
cordova platform rm ios
cordova platform add ios

Device Ready not firing in Adobe Phone Gap Build

I've build a PhoneGap app including an ios platform using the Cordova CLI, as per this tutorial.
I deployed the app the my iphone5 via xcode and verified that the onDeviceReady event was firing. I then created a build of the app using the Adobe Phone Gap Build service and deployed the build to my iphone using itunes. The onDeviceReady ready event did not fire on the deployed build.
I've referenced the Preparing Your App for PhoneGap Build document. It seems some people who experienced a similar issue were able to fix if by removing references to a cordova.js file as per the instructions in the document (the document refers to a phonegap.js file which is no where to be found in my build, I"m guessing this the same thing as cordova.js).
Has anyone else, who gotten past this issue, suggest a fix?
Yeah I think you need a
<script src="phonegap.js"></script>
in your index.html. By the way when you have built with build.phonegap.com (which inserts the phonegap.js file) you can just scan the QR code on the page with your phone rather than mucking about with iTunes

Add facebook iOS SDK without Xcode for a Phonegap Build app

I've been able to successfully build my iOS app without using Xcode. My app is a collection of HTML, CSS, and Javascript, along with my config.xml that I'm able to compile with Phonegap Build.
The app's basic functionality has been tested on iPhones and works well, but now I want to add a social layer to the app with the FacebookConnect plugin for Phonegap Build. However, the documentation on GitHub requires the app to be setup in Xcode.
Without using Xcode, is there a way to download the SDK (not as a .pkg) and add it to my project files that I upload to Phonegap Build to complile? If so, where do I get the files, which files do I need, and where do I include these files in my project structure?
Here is my current project structure:
-config.xml
-index.html
-includes
--css
--js
Perhaps there is a way of doing this with GitHub, but I've never done pull requests or anything like that. I simply work in my text editor and am not sure how to pull from GitHub.
Phonegap Build Plugins
Thank you for any help you can offer on this!
I have successfully implemented the FacebookConnect Plugin for Phonegap Build on Windows without Xcode.
I recommend just following the instructions on the Phonegap Build Plugins page and ignore the instructions on the GitHub page (which talks about Xcode and other things you don't need for the Build plugin). They have now updated the GitHub page instructions to direct Phonegap Build users away from the GitHub instructions and over to the Phonegap Build Plugins page.
For Step 1 (Setting your app up on facebook), select Native iOS App and the Bundle ID is the same as your "id" in your config.xml (i.e. com.company.appname) and you can set the App Store IDs to "0" while testing.
For Step 2, make sure you use facebook-js-sdk.js. At one time there was a typo.
A good way to test things out is to paste the content of the example Simple app on GitHub into a new index.html file and upload it with your normal config.xml file to Phonegap Build . I did this for one build on my app and then after I tested it, just uploaded my normal index.html file. The only change you will need to make in the index.html of the Example app is to put your Facebook App ID at the bottom in the FB.init function. I also changed response.session to response.authResponse to match the Facebook JS SDK, but I'm not sure if that is necessary.
Be sure to update your config.xml file with everything mentioned in Step 3. I also added the following code:
<access origin="http://m.facebook.com" />
<access origin="http://graph.facebook.com" />
<access origin="http://api.facebook.com" />
<access origin="http://fbcdn.net" subdomains="true" />
<access origin="http://akamaihd.net" subdomains="true" />
The above code is not necessary if you have the following in your config.xml file already:
<access origin="*" />
The FacebookConnect plugin is using the Facebook JS SDK, which you can learn more about here: https://developers.facebook.com/docs/reference/javascript/.
Also, one other issue I ran into that the Phonegap Build Team is working on is that when asking for permissions, you cannot just ask for the Basic Permissions by leaving off the scope option. For now, you must include at least one scope option for the login function to work.
function fbLogin () {
FB.login(function(response) {
if (response.authResponse) {
alert('User Login Success!');
} else {
alert('User cancelled login or did not fully authorize.');
}
}, { scope: "email" });
}
Most developers probably want to ask for more than the Basic Permissions, so this shouldn't be that big of an issue.
My responses above are from discussions about the Facebook Plugin over on the Phonegap Build Support Site. You can learn more about the plugin and current issues and solutions there.
It took me a little while to figure this stuff out, so hopefully this will help others save some time.

Resources