[TIMOB-19178] Windows: Add tiapp property for windows app ID
GitHub Issue | n/a |
Type | Improvement |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2015-09-14T22:44:37.000+0000 |
Affected Version/s | Release 4.1.0 |
Fix Version/s | Release 5.1.0 |
Components | Windows |
Labels | qe-4.1.0 |
Reporter | Ewan Harris |
Assignee | Christopher Williams |
Created | 2015-07-06T20:47:37.000+0000 |
Updated | 2015-09-25T16:51:50.000+0000 |
Description
Description
Currently the Windows platform is using the id tag within the tiapp.xml in order to populate the Package/Identity/Name of the app. The Package/Identity/Name is given to the user by Microsoft when the app is created on the Windows developer dashboard, an example is 55769Appcelerator.pkgTest, the section before period is the same for every app created with the same account and the section after the period is the name of the app.
In order to pass the Windows certification test the designated app id must be present, however when building for Android the Windows app id is not a valid id as it begins with a number.
There should be a tag within the section of the tiapp.xml that is used to populate the Package/Identity/Name section for the app, allowing the same app to be published across multiple platforms with the same tiapp.xml
Steps to reproduce
1. Package an app for Windows phone without setting the id property to the id given from Microsoft
2. Upload the app to the dashboard on dev.windows.com
3. Change the id to match the property and repeat 1-2
4. Attempt to package for Android
Actual result
2. When validating the package the validation will fail
3. The validation will pass
4. The packaging will fail
Expected result
A developer should not have to change the tiapp.xml values between packaging for different platforms
Comments
JSON Source
So I think even if we could use some sort of prefix to work around the use of leading digits in the app id, we have an issue of existing Android apps (and likely iOS) apps that the developers then add Windows support for - and the Windows Store assigns some new appid. According to this, the external appid must remain constant _forever_ or the app will be treated as new and lose ratings/counts/etc: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename It seems like even if we could magically find some way to get one appid to "work" on all platforms there's the issue of needing to specify different values for different platforms for existing apps - and also the issue of users picking an appid to use at the beginning of the process for Android/iOS and getting one assigned by the store for Windows.
cc [~pinnamuri] - If we go forward with an overriding tiapp id per-platform underneath the platform tag, this will impact Studio in some way - either the schema used to validate tiapp.xml, and/or if we want some Ui to surface platform-specific values.
Reopening ticket: Windows 8.1 Appc CLI Core: 5.0.0-50 Appc CLI NPM: 4.2.0-1 Titanium SDK : 5.0.0.v20150909153915 Nokia Lumia 930 8.1 When adding the app ID using the below, I still get the original app ID specified in the tiapp.xml
My suggestion is we now defer this to 5.0.1.
I intentionally am only using the windows specific app id for Windows store submission, not for analytics or Ti.App.id or anything else. My thought was that we want to still use the cross-platform Tiatnium appid for this app in our own APIs and analytics data - and that this value is specifically meant to only allow you to specify the correct Windows Store-assigned id for Windows Store submission.
Verified using: Windows 8.1 Appc CLI Core: 5.0.0-55 Appc CLI NPM: 4.2.0-8 Titanium SDK : 5.0.0.v20150915230722 Lumia 930 (8.1) When using the below the ID specified will be used for the PACKAGE_GUID for a Windows project and pass the analysis on upload to dev.windows.com. As expected when querying the appID using Ti.App.id the original ID specified is returned.
Closing ticket