I am having trouble getting Blackberry HelloWorldWidget.zip widget to work.
I compile with widget builder (bbwp.exe 2.0.0.18). I get all INFO and WARNING. No errors. Signing tools shows no signing required. I can load in simulator (9780) and run. I can load OTA to Bold 9700.
However when I click the application icon on BlackBerry, it does not open or show any error message.
I tried adding these lines to the XML file, but to no avail,
<access subdomains="true" uri="*"/>
<feature id="blackberry.app" required="true" version="1.0.0.0"/>
I think I found an possible solution
When I click on .cod file in bin/StandardInstall, I get 6 items to sign.
When I click on .cod file in bin/OTAinstall, I get no items to sign.
The two cod files are identical sizes and created at the same time.
However, Why might this be occuring?
Related
In a Cordova build I am trying to add settings for my iOS application. I have the settings already defined in a Settings.bundle/Root.plist file. All I want is the Settings.bundle copied over to the XCode project along with its children.
I'm trying to do this with a resource-file statement:
<platform name="ios">
<resource-file src="res/ios/Settings.bundle" />
...
</platform>
When I do my build, the folder is added 3 times to my project instead of only one time, and none of the files inside that folder is copied over. I see in the log output that there are 3 CpResource statements executed for this resource.
CpResource Anamnese\ mobil/Resources/res/ios/Settings.bundle build/emulator/Anamnese\ mobil.app/Settings.bundle
CpResource Anamnese\ mobil/Resources/res/ios/Settings.bundle build/emulator/Anamnese\ mobil.app/Settings.bundle
CpResource Anamnese\ mobil/Resources/res/ios/Settings.bundle build/emulator/Anamnese\ mobil.app/Settings.bundle
This is consistent with what I'm seeing in the resulting XCode project: The folder is there 3 times, but it has no contents. I played around with the location of the Settings.bundle and the number of file inside to see whether there is a relation to the number of times this is executed, but to no avail.
So, my question is, how do I properly add settings to an iOS app with Cordova?
Or, if I stay on this level of analysis: How do I properly copy folder structures into an iOS project?
I didn't find why resource-file added the Settings.bundle three times. But I figured out another way to integrate it into the app: I had to declare an own cordova plug-in that listed this Settings.bundle.
David Souther wrote a detailed instruction here: Cordova Phonegap IOS App Settings.Bundle Possible?
To install me.apla.cordova.app-preferences I had to also include this line into my cordova.xml
<plugin name="cordova-plugin-app-preferences" spec="https://github.com/apla/me.apla.cordova.app-preferences" />
Morning Lads/ladies,
Shortest background I can write: In-house application for managing inventory, developer made redundant, no iOS Developers in the company, in comes me. I have no iOS developing experience, limited HTML/Javascript programming background.
App runs on iOS v6.1.6, had to fish out Macbook from '08, now running El Capitan v10.11.6, and xCode v 6.4 (6E35b). I don't know what software/OS versions were used to develop the app/maintain it. Xcode is set to make the Project Format: Xcode 3.2-compatible.
Painfully, I have managed to locate prev. developers xcodeproj file, change to my developer profile for code signing, clean/build/archive/export a .ipa. This installs and the app runs on the intended devices.
Error is: Update Available, An updated application is available and will install now.
Only occurs when the user chooses his user profile (no password, just press User > Userprofile), a store (which section of the warehouse the items are), navigates around the app for a few seconds, presses the Home button and then reopens the application.
Currently, you have to uninstall (regular iOS uninstall)/reinstall via webserver to fix the issue. I have tried removing the files from the webserver after reinstall. The update is still prompted. The update will install the application successfully. If you open the app after this 'update' it will instantly prompt to update again.
My question is, if this isn't too vague, where could I look first to find the cause of this supposed 'loop' of updating?
EDIT1: *****Workflow:******
I've pulled the project file from the depths of the messy Stocktake folder(8 different distributions/versions scattered) using the last modified dates.
After loading the project into Xcode, the first item that demands attention is 'Validate Project Settings'. These including (under the sub-heading, bolded, Build Settings) Target 'StockTake' - Automatically Select Architectures, Project 'StockTake' - Automatically Select Architectures, Project 'StockTake' - Enable build active architecture only when debugging. I perform the changes and enable the subsequent popup asking to create a snapshot.
From the top, Stocktake Info, Deployment target, iOS Deployment Target [6 . 1]
Switch to Identity: Bundle Identifier is correct (has been changed from previous owner, I hack-jobbed this using notepad++ and navigating through the project files looking for anything related to him)
Version: [1.0] (i'll leave it as this this time round)
Build: [1.0]
I also make sure that the correct Team is selected.
BUILD SETTINGS
Architectures: Base SDK [Latest iOS (iOS 8.4)]
Code signing: All either iOS Developer, or automatic.
Everything else is left as it is when I bring up the project file.
Clean, Clean Succeeded
Build, Build Stocktake: Succeeded
Then, Product, Destination, iOS Device
Archive
(Can see Stocktake, creation date, Version is what is listed above [1.0])
Validate, Choose correct team, Provisioning profile is what XC has created
iTunes Store operation failed (No suitable app records were found, check bundle identifier)
I leave this as is because I can use the export function in the organizer successfully anyway.
Export, Save Ad Hoc Dep., Choose correct team, Export with XC-created prov. profile, Export
.ipa is created successfully.
I can go more in-depth, but I don't want to make a MASSIVE wall of text. I can upload a PDF of my in-depth findings somewhere if need be.
-(void) promptForUpdate
{
CCAlertView *alert = [[CCAlertView alloc] initWithTitle:#"Update Available" message:#"An updated application is available and will install now."];
[alert addButtonWithTitle:#"Ok" block:^{
// open update URL in Web Browser
if (![[UIApplication sharedApplication] openURL:kUpdaterURL]) {
ALog(#"Failed to open app updater URL: %#", kUpdaterURL);
}
}];
[alert show];
}
I managed to solve this particular issue, we will see if any more issues pop up. There must have been a version mismatch between the appname.plist, and two web.config files related to an Oracle database this app connects to. We run two Maximo environments here, production and test.
To fix this problem:
I opened appname.plist(Stocktake.plist in my case) and found the following coding:
<key>bundle-version</key>
<string>1.0</string>
I editted this to:
<key>bundle-version</key>
<string>1.16</string>
This was to match the two webconfig files, which looked like this:
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="true" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="MaximoConnection" value="provider=OraOLEDB.Oracle; data source=maximo75test; user id=; password=;" />
<add key="BatchSize" value="200" />
<add key="Version" value="1.16" />
I didn't touch the bundle-version string, because throughout each previous distribution I found, it had been 1.0. I had played around with the web.config Version file before, but was matching it to the App version I was creating in Xcode (I think the last version I tried creating was 1.6). I'm unsure why this worked, I haven't entered 1.16 into any of the .ipas I created, it was 1.16 when I initially started my troubleshooting,but it could have something to do with Maximo (perhaps Maximo is version 1.16?).
If anyone has trouble with this 'Update Available' loop, i'd suggest trying to find the last iteration of whatever application you're working with, and the latest version of the software you're integrating with, and set the version AND build to the same number before you export. It isn't best practice, but at least if you can get it working, you can slowly replace versions/builds until you find the problem.
This post (linked below) helped me come to the conclusion of changing the versions:
Version vs build in XCode
I am trying to deploy an app to App Store however Apple rejects the app.
I am getting an error ITMS :90096 which is specific to 4 inch splash screen for iPhone 5.
I have added the splash into the app and referred it into the config.xml.
I have tried various solutions on SO and also other sites but no luck.
I am unsure how to fix it and its getting real frustrating now. Can someone help?
The error
My advice would be to start with a new config.xml from the latest "cordova start" package on github. You can find it here.
(If this is an insufficient answer, please post your current config.xml file so we can see what is wrong)
Why you are referring Splash images in Config.xml rather than applying in AssetManager.
Click on your project, General-> App Icon and Launch images.
if you are using ionic to build the app.
You can fix this issue by execute "ionic resources".
the issue is caused by the image size of Default-568h#2x~iphone.png is not 640*1136.
steps to create all size of splashscreens and icons:
1.create a new ionic app by "ionic start myApp tabs"
2.place one splash screen image and one icon to /myApp/resources/ folder
3.execute "ionic resources", this command will generated all size of images and icons that are required by ios.
When uploading an app built with Phonegap Build I was getting this error message with a slightly different text, 'must include a launch image referenced in the Info.plist under UILaunchImages with a UILaunchImageSize value set to {320, 568}.'
I found a workaround by changing phonegap-version in config.xml to cli-6.5.0. ie.
<preference name='phonegap-version' value='cli-6.5.0' />
It seems this is an Apple bug.
This question already has answers here:
Phonegap app submission to AppStore - ITMS-9000 error
(2 answers)
Closed 5 years ago.
As always the submission to iTunesConnect of my PhoneGap application is being rather troublesome. In particular is this new message I see pop up when I try to use Application Loader.
Your binary is not optimized for iPhone 5. - New iPhone apps and app updates
submitted must support the 4-inch display on iPhone 5 and must include a launch
image with the -568h size modifier immediately following the
<basename> portion of the launch image's filename. Launch images
must be PNG files and located at the top-level of your bundle, or provided
within each .lproj folder if you localize your launch images.
Per https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/LaunchImages.html I have created an image of 640 x 1136, named it "Launch_Image_640x1136-568h.png", and placed it in the www folder. Still, it gives me the error.
What's going on here? Hopefully this is something simple and easy to take care of, but I'm at my wit's end right now. Anyone have any information or solutions to this? Thanks.
**UPDATE**
I develop the app with Aptana 3 on Windows 8.1 and only use a mac for certificates, keys, p12 files, and uploading. I'm not using PhoneGap on a mac through xcode.
So I kept on and finally found the answer today here http://community.phonegap.com/nitobi/topics/iphone_5_optimization_requirement-on7f1 and here https://github.com/phonegap/phonegap-start/blob/master/www/config.xml
In a nutshell the issue arose because Apple, in their never ending pursuit to make things difficult, now requires a "launch screen" image to be included in all apps. As a result, you now have to have, currently, 3 different sized launch screen images with a specific naming procedure on each. The solution that I found via the links above was to place the launch screen images in the root directory and add the following three lines to config.xml
<gap:splash src="Default.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="Default#2x.png" gap:platform="ios" width="640" height="960" />
<gap:splash src="Default-568h#2x.png" gap:platform="ios" width="640" height="1136" />
I'm not sure if the launch screen images are required to be in the root directory or not, but it works for me at the moment. Also, I'm not sure if the images have to begin with "Default", but I do know that the larger two images have to have "#2x" and "-568h#2x" on the end of the file name that's the same name as the smallest image.
For more information on "launch screens" see Apple's documentation here https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/LaunchImages.html
Hope this helps someone.
It needs to be declared on the app. click on the Project file (the top most item in Xcode with the blue Xcode icon). navigate to target / general settings launch image is one of the items.
I'm developing an iOS app using Cordova 3.3.0. In my config.xml, I have the following:
<access origin="https://*.kidsintouch.com" />
Theoretically, that should stop my app from accessing any resources that try to load outside that domain.
However, when I run the app in the simulator or on device via Xcode, I can access images from any domain.
The PhoneGap docs say :
Unlike the Android platform noted above, navigating to non-whitelisted domains via href hyperlink on iOS prevents the page from opening at all.
However, I'm still able to put an external link on a page in the app and click on it.
When I run the app in Xcode, I see the following console output:
2014-01-02 06:47:16.469 Kids In Touch[10454:60b] Multi-tasking -> Device: YES, App: YES
2014-01-02 06:47:16.480 Kids In Touch[10454:60b] Unlimited access to network resources
2014-01-02 06:47:17.276 Kids In Touch[10454:60b] Resetting plugins due to page load.
2014-01-02 06:47:18.157 Kids In Touch[10454:60b] Finished load of: file:///var/mobile/Applications/8DBB3EE2-A33D-4523-A51F-B72AJ21E5338/Kids%20In%20Touch.app/www/index.html#/intro
2014-01-02 06:47:19.629 Kids In Touch[10454:60b] Resetting plugins due to page load.
The Unlimited access to network resources clearly shows something is wrong. When I click on a bogus link to Google I put in the app, the console displays:
2014-01-02 06:47:20.755 Kids In Touch[10454:60b] Finished load of: https://www.google.com/
So clearly my access origin restriction is not actually restricting anything.
Is there something I am doing wrong? How do I prevent my app from accessing any resources outside the domain I've provided?
Thanks
I found the problem with this. For some reason, the config.xml file produced by cordova build ios is NOT the same as I have in my www folder.
There seems to be some default info in it THEN my real info from www/config.xml is appended to it. At the top of the default config info is <access origin="*" />.
So, the app is allowed all access.
I tried completely blowing out the existing config.xml by running cordova platform remove ios and then rerunning cordova build ios. This did not work. Each time I build, some default stuff is prepended to my real config.xml.
Cure for now until I dig deeper is to manual edit the config.xml after every build. When I do this and try to access a domain not configured with access origin, I get:
ERROR whitelist rejection: url='http://0.0.0.0:8080/accounts'
So, whitelisting works properly, but I've got a wonky build process to resolve.
UPDATE : There is a file platforms/ios/cordova/defaults.xml that contains the default settings for an XML file. It has the access origin * in it. I deleted that and a few other settings and can now build properly respecting the config.xml in my www folder.
All is well. Strange that these defaults get put into my final config.xml.
I ran into this problem too. As an alternative to deleting the defaults, you can ensure that your tags are placed immediately after the tag in the config.xml.