Have spent ages building a new cross-platform app for iOS and Android and beta tested it and Tesflighted it on both stores.
We now want to launch the App in the store. Android (easy) as it is new to that store and had no legacy users.
The new iOS version will be a new build for an existing App on the store. However, the existing app has an App ID with a section that starts with a number. It is the form xx.xx.12xxx.xx but I can't get this to build in XDK. I have the provisioning profile from Apple but can't change the App ID in XDK or hack it by changing the intelxdk.config.ios.xml to match the provisioning profile App ID. I can't even make that file read only to prevent it being overwritten before uploading.
I realise (now) this is a Cordova constraint but you mentioned elsewhere in the forum (can't find the thread now) that you were going to try and get around this.
Help! I want to put the new build in to the existing App so that all our existing users are updated to the new cross-platform app built with Intel XDK.
This is probably where you read about the restriction > https://software.intel.com/en-us/xdk/faqs/cordova#app-id-rules < You might be able to get around it by doing a Cordova Package export (on the 3900 build tab) and modifying the <widget> tag to include an ios-CFBundleIdentifier attribute that specifies the unique App ID for your iOS build; however, according to this thread it appears that may not have been implemented in standard Cordova (but that's not an official Cordova project issue thread). I do find it referenced in the ios-cordova framework repo. If that <widget> attribute is supported, you'll have to build your app with PhoneGap Build or with Cordova CLI using the exported build package, since the <widget> tag is not modifiable in our build system.
This post indicates there is a way to change the ID AFTER the iOS package has been built > https://github.com/meteor/meteor/issues/5929#issuecomment-255664090 < for which you will need access to a Mac (likewise, if you want to build with CLI directly).
See this doc page > https://software.intel.com/en-us/xdk/docs/build-xdk-app-with-phonegap-cordova-cli < for more details regarding the export function in 3900.
Ah no I wasn't using 3900 on my Linux box. I'll update.
However, I have fixed this now. We had to contact Apple who were very helpful and they dug out our old App from 2011 so that it appeared in our itunesconnect app list.
Then did the following (1) installing Intel XDK 3900 on an iMac, (2) copying the entire XDK development folder for the app on to the Mac, (3) loading the project in to the Mac's XDK and exporting as a Cordova Build, (4) changing in to the project folder and adding platform ios through Cordova Command Line, (5) opening the subsequently created ios platform xcode project file with Xcode on the Mac, (6) setting up the correct name of the App etc. in the Xcode "build" GUI and using 'automatic signing', (7) Building and uploading the app with Xcode to the Apple Store.
It *should* have all worked with a Cordova CLI (and the iMac's Application Loader) build but for some reason it was not signing correctly. Xcode8 uses "automatic signing" and we got it to work with that quite easily once the signing identity was changed to "iPhone Developer".
We now have a slightly disjointed project. We'll develop it in Intel XDK and will build the Android App on Linux (when I update to build 3900) but then to build the ios app we'll have to repeat the above iMac steps. Since you need to use a Mac anyhow for uploading to the store it isn't a big issue.
Thanks for your help.
Congrats on getting it all to work, Dean! I was trying to get some exported iOS CLI builds to work yesterday, myself and was running into the same issue with Xcode 8 and the "automatic" signing. I'm trying to find a set of instructions to make that process easier for people, but so far not finding anything that is clear and concise and easy to follow for a variety of people.
You can also load the Android build tools onto the Mac, if that helps to make it less disjoint.
We are fixing several issues in the export, but those fixes won't address the use of the "ios-CFBundleIdentifier" attribute in the <widget> tag. Did you end up using that attribute? It sounds like you relied on building the iOS project file directly from within Xcode.
BTW - you can use this script > https://github.com/xmnboy/xdk-to-cli < as an alternative to the export, which may might make it easier to work with the XDK in a shadow project on the Mac.