more capabilities in App Hub than in WMAppManifest.xml - windows-phone-7.1

I have developed an app using Silverlight XNA, with AdDuplex (for Silverlight 1.2.3) and Scoreloop (Core Social 1.2.0).
I have defined capabilities of my app in WMAppManifest.xml as
<Capabilities>
<Capability Name="ID_CAP_NETWORKING"/>
<Capability Name="ID_CAP_MEDIALIB"/>
<Capability Name="ID_CAP_IDENTITY_DEVICE"/>
</Capabilities>`
and every function works properly. (Sorry I do not know how to type in < here. Please help me edit it.)
However, after I submitted it, it shows in App Hub as
Required Device capabilities
data services
music and video library
web browser
owner identity
XNA framework
Silverlight framework
phone identity
trial
Though I later run the Markeplace Test Kit, it shows the same thing.
My question are:
Where do owner identity and web browser come from?
Why does App Hub override my decision?

Capabilities are recalculated for you when you submit, as described here. As I understand it, undeclared capabilities will be added but unused capabilities will not be removed.
owner identity is almost certainly coming from either your ad framework or the social framework, and is determined by any reference to the Microsoft.Phone.Info.UserExtendedProperties class (including from any libraries you reference).
web browser is also likely coming from one of those two frameworks and is determined by a direct reference to the Microsoft.Phone.Controls.WebBrowser class.
For a full list of how each capability is determined, open %programfiles(x86)%\Microsoft SDKs\Windows Phone\v7.1\Tools\Marketplace\Rules.xml in your favourite text editor.

Related

Opening public iOS files using a Delphi FMX app

I am developing a document viewer app that should be able to handle a custom file type. I already managed to resister my app as default handler for the file type using CFBundleDocumentTypes in my info.plist.
This enables me to choose a file from the explorer and open it in my app using the "copy to..." feature in the sharing options of the file.
The behavior of that feature isn't ideal for me, as it is not very intuitive for new users.
Also the files are (as the name already said) always copied to the internal Directory of my App, which changes their names and wastes a lot of space when opening the same file multiple times.
Adding LSSupportsOpeningDocumentsInPlace to the info.plist changes "copy to.." to be "open in..." which is also triggered by just tappin the file. On the iOS side this is exactly what I want, but now the URL my App receives is security scoped meaning I can't just access the File like one of my own.
The Apple Developer Documentation suggests either requesting Access by using startAccessingSecurityScopedResource() or by using the UIDocument class.
Both of which don't seem to work, I can't find any implementation of startAccessingSecurityScopedResource() in the iOSAPI and UIDocument needs a NSUrl which I can't create from the String "Url" which I get passed on when opening the App, since it is security scoped and can't be accessed.
Is there any other way to gain Access to security scoped Resources using Delphi or did I maybe miss something when looking through the iOSAPI?
I am using the following Versions:
Delphi 10.4 Sydney Patch 3
Platform Assistant Server 21.0
macOS Catalina 10.15.6
Xcode 11.7
iPhone 7 with iOS 13.7

Accessing an Application from a Web Browser for Android and iOS

First and foremost, I am not the developer behind this application, however I am looking for a solution to this problem as I work at the company that runs the application and I've been tasked to do so. This is not a focused code-line question, but more so an application question.
Background: The application is an educational tool that simulates a physical science laboratory that is programmed using Flash. It is accessed from a Learning Management System (LMS) web browser - i.e. Blackboard, Canvas, etc. - through a link to the object. There are multiple simulated labs that are each their own object.
The main problem: The simulators/labs are able to be accessed on an Android device (phones & tablets) by prompting a download of a .apk file once the link is clicked on that device where they will have a menu that localizes all the simulators. This is to centralize all the simulators into one menu app. Now, when you attempt this process on an iOS device, it's obviously incompatible (.apk vs .ipa). We can create a runnable .ipa file for each individual simulator, but this is not efficient at all when attempting to execute on a mass scale (think district-wide access).
What I want to find out is the most efficient way to adapt the application for iOS since it utilizes Flash. The same process would be desired (click the link and it prompts a download of the menu app that holds the sims/labs).
Thanks in advance.
You need to enrol for apple developer program to distribute builds. Normal subscription consider distribution thought App Store, and it seems not your case. There is Enterprise subscription - it allows to create .ipa, that can be installed on any device, but distributed locally (Ad-Hoc). While assembling Ad-Hoc build in latest Xcode you can select opportunity to create distribution manifest as well (Xcode will provide description how to use it). Then you can upload manifest and iPad file to you file server, and share link to manifest with you user. Opening manifest on iDevice will launch installation of application.

Acessing system information from frameworks in iOS Developer Library

As the title says, I am trying to create an app(personal development) and try to see what kind of system information or user data can be retrieved from phone. For now I am using the stimulator provided. So far what I am able to do is to retrieve information using the Address Book and UIKit Framework such as contact details and System Name/Version etc.
Is there any system information/user data that I missed out because I have yet to know of any more frameworks that allows retrieving of any information from the phone/Stimulator. I am not able to test EventKit Framework(the only other framework that I know) due to the fact that I am deploying the app in the stimulator which does not have the required apps. (Will be trying on jailbroken iphone in the later stages).
Also, I have yet to find any information of accessing the .sqlitedb /.db/.plist files programmatically instead of using any software tools as I would like to access the files such as messages, phone history through my app that I created. If this is possible, I would also like to know if accessing these .sqlitedb /.db files/.plist is only applicable if I deploy my app in the jailbroken phone /Applications folder which does not have sandbox or is it also applicable in the stimulator itself?
This will be definitely helpful to you to get access the call/sms/email details by reading the .sqlite database. Here is a tutorial.
i know providing links are discouraged here however these apple and wiki
links will be helpful to you.
thanks

PhoneGap in regards to App Store approval

I read that PhoneGap is approved by Apple as a framework for building native apps, but I'm not clear on how this does not constitute a "website wrapped as an app," something that Apple specifically doesn't like, as per their App Store guidelines. I'm assuming it is because the JS is contained in the application, rather than running on a remote server?
Any clarification on this issue would be most appreciated.
but I'm not clear on how this does not constitute a "website wrapped
as an app," something that Apple specifically doesn't like, as per
their App Store guidelines.
By this Apple means Apps that simply show a UIWebView that loads a remote website, so it basically just behaves like Mobile Safari, just without the controls. Also they wan't Apps to show at least a UI when the device is not connected to the internet, like in the Facebook App where you can still read already downloaded status updates, view photos etc. That's what a "I just wrap a remote website inside a UIWebView"-App can't do.
PhoneGap Apps have all the resources they need (HTML, CSS, JavaScript) on the device residing in the App's bundle, so using such an App would not depend on network availability and could at least show a UI that tells you to connect to the Internet in order to use the App, or they could display already loaded content (like Facebook, Twitter and so on).
I think that the signature of the binary tells Apple what framework built the application, and since all the supporting files (js included) are included in the project and therefore in the binary, it is a standalone application. That being said, I still think that doing things Natively is the best way to go. I am extremely comfortable with javascript and started out thinking Phonegap was the way to go for me. I did a couple of projects with it and then decided to take the plunge and learn Objective-C. That worked out so much better for me. No dependency on a third party framework and I wish that I had started that way.
Sometimes the easy way out just hurts ya in the end IMO.

Embed Adobe Air/Flex application inside a standard iOS application

I have a native (Obj-C, standard Xcode project) application and I'd like to integrate a partners iOS application (or specifically, it's functionality) into it as just another view in my application. The problem is that their application is a Flex/Air app. I really don't understand the Adobe compilation process on how it gets from a bunch of flex code down to an IPA. I don't see intermediate projects, shared objects, etc on the disk to produce that IPA. It looks like it doesn't rely on the Apple tool chain... as I understand it, you can produce the IPA on Windows as well.
Is there any way to build that Flex app in such a way that I can import it into Xcode so I can link against it and use it as a library from within my application?
While I specifically used iOS as an example since that is the most important platform, we'll want to apply this solution to our respective Android and Blackberry 6 apps as well.
No, you cannot embed an application within another application. This is true for all applications. Only thing you could do is get the swf of your partner's code and embed that into an Air application, but since you're not using Actionscript/Flex, it won't be possible.
Only other way would be to have an app link to the other application.

Resources