registerAppForAdNetworkAttribution() method call - swift

Im using Branch SDK to supports SKAdNetwork.
https://help.branch.io/using-branch/docs/branchskadnetwork-integration-instructions#app-option-1-use-the-branch-sdk-to-manage-skadnetwork
I added StoreKit to my iOS app, in the apple documentation https://developer.apple.com/documentation/storekit/skadnetwork/2943654-registerappforadnetworkattributi they mention that this function is been called after the first launch of an app installed as a result of an ad.
but I didn't find any documentation that talks about where and how to implement it, is it on the app side or on the Branch side. How do I know that its been triggered? how to call it? should I import something?
Any help is appreciated

It appears that you are using Branch SDK with option to let SDK manage SKAdNetwork. If that’s the case, once you initialise SDK in App e.g. in didFinishLaunch function, SDK will take care of registerAppForAdNetworkAttribution Call. You don’t need to call it again in App.
If you opt to manage SKAdNetwork yourself, then you need to call registerAppForAdNetworkAttribution From within App didFinishLaunch function. Ideally call it only once per app install, though Apple documentation says there is not effect if you call it multiple times.

Related

How can flutter app gets the new version update from the play store or the Apple Store automatically

How can we make the flutter app to make automatic update whenever we release a new version of the app into the store. but I don't want to use the pop up to alert the user to update I want to update automatically without letting the user even know we update it.
As said in the comment, if you publish to Google Playstore or iOs AppStore, they will handle the updates for you. You just have to upload the new version (just set the release number correctly) and, when the validation is done, their system will notify/update the app. I don't know how other stores behave, but I'm guessing that's the standard behaviour now.
Instead, if you need to bypass the store functionality and perform the update "by yourself", I don't think that is gonna be a simple task. Apple simply doesn't allow installation from other sources than their store, so I fear it may be simply impossible. On Android, on the other hand, I know that's possible, but it will require some user interaction beforehand, since the "installation from unknown source" authorization must be provided to the app that downloads/opens your .apk file, and the procedure may vary from a device to another, so I fear there won't be a single mechanism that will work everywhere.
In any case, the base mechanism will probably require some HTTP GET by your app towards some webserver that will reply with the latest version: the app should then compare the received version number with its own, and then proceed to the download of the package (the URL for the download can be provided along with the latest version number). After that, you have to manage somehow to install/update the downloaded file.
I personally used this approach with Flutter on Windows 7 and newer, where there are no store constraints and I can simply run and download the .msi or .exe file for the latest version, and works just fine.
I think you are looking for the concept of codepush which was loved by many React Native developers.
In Flutter, I think you might want to check out flutter_code_push if this fits your needs.

If I use UIWebview in my app, will app store reject it since it has been officially deprecated?

I made an AR app which embedded the UIWebView to display web content on an SCNPlane. I can not use the WKWebView because it does not work well with AR. On the contrary, UIWebView works nice.
If I upload my app into the app store, will my app get rejected?
Also, I notice that on the UIWebView's official document page, there is an certain alert says "An iOS app linked on or after iOS 10.0 must include in its Info.plist file the usage description keys for the types of data it needs to access or it will crash." Do i need to add certain specific description key for the UIWebView?
Thanks in advance!
No. Deprecated doesn't mean unavailable or disallowed; otherwise those methods would simply be removed from the API.Deprecation is a way of letting you know that you should start transitioning your existing codebase.
Deprecated methods may be more primitive and dangerous than newer versions, may not take into account all current OS features.

How to get in-app call information

How can you get information about the call(e.g. caller's and calling numbers(or source and destination phone numbers),call date and call duration etc.), which you make from your app using openURL method in iOS sdk? Any possible way? Any help is appreciated. Thanks.
call log is not accessible via apple documented apis but if you do sm google, you'll find that there are ways to access this info (iOS dependent - means iOS4 's method/api is different than iOS 3) using which you can access this log but then you won't be able to post the app on applestore.
In iOS, you cannot access any other App's data from your App

Can I force a user to upgrade my app?

Can I force a user to upgrade my app? Does Apple recommend it?
Yes, you can. Just check the version number when the application starts and if needed, bail out with an error screen. I don’t think Apple explicitly prohibits this. (And I doubt they would find out during the review.) Of course it’s annoying from the user’s viewpoint, I would only write something like that if there was no other option.
Yes you can force an upgrade to the user. You can call a webservice when your app start and check on your server if an update is available (you have to add an update when an update available on app store). If an update is available then you can present a view that will have the update button. When pressed this button will redirect the user to the installed app store app and open the upgraded app in it. (you should return this url in your webservice). Let me know in comments if you need more explanations.
And I don't know apple recommend this way. But I have seen this in one or two apps.
Extremely bad approach. My perfectly fine working app forces upgrade, which can not be supported due to obsolete iOS. I am not only forced, but moving away from the coupon app in determination to never use it web-based either.
Security issue, if that is the reason for upgrade, should be patched for existing iOS.

How to automatically update an iPhone app from within the app itself?

This link shows a video where an app upgrade is "forced" from within the app itself:
http://buzzworks.de/blog/update-ios-beta-apps-from-within-the-app
The App Store is not called in and it's said to work only for AdHoc
apps.
Anyone knows how is this possible?
edit: please give a look to the video before answering. AdHoc apps are signed by the developer and they do not come from the App Store. This sort of forced update is useful when doing beta testing and in enterprise applications.
I've found that it's all explained here:
http://developer.apple.com/iphone/library/featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
The developer should create an .ipa with the app and a manifest in plist format with the URL to the .ipa and a few other things.
The app can optionally implement its own way to find if an update is available and open
the URL to the manifest.
I didn't it's really possible because the app has to somehow sign itself. The best I can think of right now is that the app is not signed?
You can always force people to go to the app store when a new version is out. Simply make the app connect to a webservice first. Other solutions are not accepted by Apple, or will quite simply not work because of other issues (signing is one of many).
You could also design your app in such a way that forced updates are never a requirement. You can load your user interfaces from the web (Apple has presented some valuable information about that during the previous WWDC), your data can come from the web, and if there is any other correction to do just ensure your app is backwards compatible.
That's how the app store works. And it never requires a 'forced update' ... Well, almost never ;-)