remove/disable MobileFirst app "Server Connectivity Settings" from iPhone Setting - ibm-mobilefirst

This feature might be useful while on developing. But we want to toggle it since we don't want any server informations be exposed to end users.

Make sure that the worklightSettings options is set to "false" in application-descriptor.xml and re-build your project in Worklight Studio followed by a build in Xcode.
If you still see the application settings entry in iOS's Settings.app then select the Clean option in Xcode and run again (in Xcode). This should make the entry go away.

Related

Why do I need to keep re-enabled Accessibility for my mac whenever I compile a new version?

I have a macOS application that uses CGEventPostToPSN to send keyboard commands to TextEdit.
Whenever I compile a new version of the app, I'm unable to send keyboard commands.
I have to go into System Preferences -> Security -> Accessibility, then remove and re-add my application.
Every time I compile a new version.
Is there some way to circumvent this during development?
Yes, I worked on a project with this same problem. We never got around to doing it (disclaimer!), but our working theory was that if we enrolled in the Apple Developer Program and signed our development macOS builds with a Developer ID certificate, this problem will go away.
(The thinking was that it was probably Gatekeeper not being able to link one build to the next since there was no shared certificate for continuity.)
Note: This doesn't mean you have to distribute in the macOS App Store. You might look into notarization though.

On one Mac, Xcode does not correctly attach to debug a privileged helper and I cannot set breakpoints etc. On another machine it works. Any solution?

I am developing a macOS application that uses a privileged helper following this very good Apple example, "Even Better Authorization Sample". Using the "Attach to process by PID or name" Xcode feature, I should be able to debug and set breakpoints both in the host app and the privileged helper. However, on my production machine this does not work and Xcode never stops on breakpoints, although it claims to be attached as root. I have System Integrity Protection disabled. I am using Xcode 12.3. On another Mac it works and it debugs the helper properly. Anybody has a suggestion ? Thanks a lot for your help.

Worklight Console does not show new changes to project -- seems to use original code

I am running Eclipse Luna 4.4.1 with Worklight Studio 6.2...
I have made changes to my Worklight project. For some reason, I cannot get these changes to be seen/previewed when opening in the Worklight Console...
I have made simple changes such as adding print (console.log) statements to see if these changes are making it out to the console... I have even removed design elements to see if I can get this preview to error out...
Here is what I do:
Highlight the app folder (the folder under the "apps" folder) and right-click
Select Run As > 2 Build All Environments
Once that is complete, I highlight the project folder (the topmost folder in the project) and right-click, selecting Open Worklight Console, which opens the console in Firefox
Click the Preview as Common Resources link in the Console
The "old" code/project runs -- no changes appear
I have tried Cleaning the project, closing and re-opening Eclipse, rebooting my machine, etc. but nothing seems to shake this up. Worklight seems to use the "old" code no matter what I do in Eclipse...
Is there a setting on Worklight I may be missing?
Starting Worklight 6.2 you do not need to either build or deploy your application in order to see changes made to web resources.
The following should suffice:
Create a Project and application
Run As > Run on Worklight Development Environment
Open console, view the application (keep this tab open)
In Eclipse, change some resource (image, CSS, HTML, JavaScript)
Return to the previously opened tab and refresh it
The change should be visible to you.
Something to try:
Close Eclipse
Open your TMPDIR and delete the wlBuildResources folder
Open Eclipse, try again
You can also try adding a mobile environment to your application; there are some reports this some times, show how, helps 'refreshing' the web resources used while previewing applications
You can also make sure you are using the very latest 6.2.0.01 iFix; there were preview-related fixes in the past. You can get it from IBM Fix Central website (assuming you are an IBM customer/business partner; for evaluation purposes you should download the latest available version, from the Eclipse Marketplace - v6.3)
Note that Run As > Build all environment does not actually deploy your modified web resources to the server, it only generates the .wlapp for later consumption elsewhere, so I suggest to follow my steps at the very top of this answer, by using Run As > Run on Worklight Development Server, and later on simply save (ctrl/cmd-s) and then go to the console to verify the changes are there.

Xcode 5: Code signing entitlement errors

I've build a new application which is going to support IOS 7. I got the new XCode 5 GM and tried to sign my apps using my fresh provisioning profile and distribution certificate, but i'm having trouble with distribution. I constantly get the following error:
"Invalid Code Signing Entitlements. The entitlements in your app
bundle signature do not match the ones that are contained in the
provisioning profile. According to the provisioning profile, the
bundle contains a key value that is not allowed:
'[XXXX.com.sample.company ]' for the key 'keychain-access-groups".
Also the same error for a key value called application-identifier.
Screenshot of the errror:
The solution lies in the new option in Xcode 5 which says provisioning profile. Just set the project target's provisioning profile to the right one and it'll work.
If you are like me and you think you tried EVERYTHING, archived your project over ten times, banged your head on the keyboard and still get this error. Please do yourself a favor and simply Restart XCode, it worked for me. Sometime Apple... I hate you.
I went through many of the steps above but what finally worked for me was refreshing my profiles in Xcode. Not sure why it was necessary since my app's distribution profile was showing up in the list already. Here are the steps:
Xcode Preferences
Accounts tab
Select your Apple ID
Hit the View Details button in the Apple ID detail panel
Hit the Refresh button in the lower left corner
In my case, i activated the same capabilities in Xcode that in Application services in developer.apple.com. Thats works for me
In my case (sorry) I switched "Team" to "None" in -> General -> Identity
In another case I needed to switch this identity from "None" to the developer account managing the identities and profiles.
Xcode sometimes messes up greatly with code signing, it seems. Or, we mere mortals simply aren't clever enough to understand what it is doing, of course. Don't give up, we're all going through some code signing torture at times!
In my case, I had to set correct Provision Profile for Release, and then had to restart Xcode. Before restarting, it had same provision profile, and didn't work. So, sometimes a restart can do miracles. Maybe this helps somebody.
If someone uses a GameCenter then check this section in your target. I worked with some old project and there were 2 errors (but everything worked fine). Disabling and enabling it back solved this problem.
Most likely this action adds Game Center entitlement to App ID and and handle it itself.
1.Go to project folder, delete *.entitlements files.
2.Then go yo in xcode project target -> build settings -> code signing entitlements - delete values
3.Clean
4.Run
Ah, this glorious error. For me whenever I see this error I check the following things:
1. Allow XCode to access your provisioning profile info all the time - If XCode keeps asking when you start it up to have access to your computer's private files so that it can get provisioning profile information with the options to allow access always, not now, or just one time - set it to ALWAYS ALLOW access
2. If you have any old entitlement files kicking around your project get rid of them and any sign of them - if you see a .entitlements file in your project delete it (or at least remove the reference to it if you aren't sure you are ready to outright delete it), then make sure the 'Code Signing Entitlements' line under the 'Code Signing' section in Build Settings is empty
3. Check your Application Services online and match them up with your Services in XCode for the app - Go to the Apple Member Center and check the App ID for your app, click on the app to see its 'Application Services' and see what you have checked, then go to XCode and check your 'Capabilities' section to make sure the two have the same list of Apple services on both
4. Make sure you assign a valid Provisioning Profile to your app before validating - double check your provisioning profile for your app in the Apple Member Center, make sure it isn't expired, has the right App ID with the correct bundle id and distribution. Download and click on the new provisioning profile to make sure XCode has it, or go to XCode > Preferences > Accounts > click on your account and 'View Details' then click the bottom corner button to Sync all the profiles to XCode. You should have the profile available to select now in the 'Code Signing' section. Once you have the correct provisioning profile then you can set the 'Code Signing Identity' lines to the correct option for that provisioning profile.
Note - if doing a distribution certificate it can help to set all the 'Code Signing Identity' lines to the identity you use for distribution including the debug lines
5. IF ALL ELSE FAILS - Clean your project and Restart XCode and some Apple magic may just work fine the next time you open your project and try to Validate
If you're building an old 3.1.5 project, Xcode 5 has some bugs which unfortunately makes Benjamin's answer impossible, as there are no Provisioning profiles to pick from. After many a late hour of tormented reading of Xcode project files I came up with this solution that worked for me:
In the Utilities pane (to the right) in Xcode 5, under project Document, change from Xcode 3.1-compatible to Xcode 3.2 compatible.
Enter your organization name.
Close project.
Open your project file, e.g. open -a TextEdit path/to/name.xcodeproj/project.pbxproj
Remove the two Distribution clauses (isa=XCBuildConfiguration).
Remove the two accompanying lines in buildConfiguration (one in PBXNativeTarget and one in PBXProject XCConfigurationLists)
Now you're ready to re-open, archive and submit to App store - voilà! It works again!
How I think it works
I assume this works because Apple somewhere along the line decided to drop the need for any separate distribution config, which is a good thing. When I archive, Xcode automatically code signs for distribution. That's the way it should have been implemented in the first place, it's just a shame that Apple can't make auto-migration part of the IDE; instead they force us developers to spend man-decades to make this stuff work.
I have been struggling with this problem for more than a day now, trying all kinds of solutions suggested here and elsewhere on the internet. Nothing worked...
But, I finally managed to solve the problem!
The problem I had was with an old app that I haven't touched in over 3 years, and now I was about to release a long awaited update. Since the time I released the app, Apple has been updating how the certificates and App Id works. They have introduced the concept of Team Id which seems to be recommended to use.
In particular, the Apple's "Certificates, Identifiers & Profiles" site, has seen a lot of changes since then.
There I realized that the Provisioning Profile I was using for App Store Distribution were connected to the App Id ED8xxxxxxx.com.rostsolutions.* but looking at the App Id for the game I was about to submit I notice that the App Id was ATMxxxxxxx.com.rostsolutions.Swisch. So the App Id prefix did not match!
That seemed to be the root of the problem. So what I did was to create a new Provisioning Profile connected to the App Id ATMxxxxxxx.com.rostsolutions.Swisch instead. Using that Provisioning Profile I successfully submitted my app to App Store and now I just keep my fingers crossed that everything else works fine at Apple's side.
(I first tried to connect to new Provisioning profile to the wildcard Id ATMxxxxxxx.com.rostsolutions.* instead, but that didn't seem to work).
But what puzzles me is that when I look at the old App in iTunes Connects and goes to Binary Details, it says that the App Id is ED8xxxxxxx.com.rostsolutions.Swisch. So why is the "Certificates, Identifiers & Profiles" page listing the App Id as ATMxxxxxxx.com.rostsolutions.Swisch?
My problem was solved by removing my Apple ID from Preferences->Accounts and then adding it back again. Then all my provisioning profile files showed up on the View Details utility panel. I was mistakenly choosing "Mac Team Provisioning Profile:*" instead of the actual distribution provisioning profile for the project thinking that it was a generic selection. Provisioning files must be specific to the project. Oh, and BTW, make sure your provisioning profile has the correct entitlements (for example, Maps). I managed to release an app with OSX Maps without the entitlement and Apple approved it -- but no Maps showed up on the production version!
In my case, I had the same problem, my solution was to change the 'Release Provisioning Profile' in the Build Settings before doing Archive. I do this twice, once for App Store distribution, and another one for Ad Hoc distribution. I also add a comment on my archives. My conclusion is that there is something broken about the "archive re-signature".
There is a very good tutorial for solving that problem on this website.
It says that this problem can occur when your Projects Bundle Identifier is different to the one you entered on the iTunes Connect Website.
I think xcode 5 uses "release" instead of "distribution" that you may created yourself.
If all above didn't work (in my case after couple of days no luck trying everything) I have only one Mac application. BE CAREFULL WITH REVOKE!
1) Revoke by hand all "Mac App Distribution" & "Mac Installer Distribution"
2) Clean relevant certificates and open-keys in Keychain (Warning: export before delete)
3) Restart Xcode
4) Go to (in Safari) developer.apple.com -> certificates etc.
5) Create CertificateSigningRequest.certSigningRequest in Keychain->Certificate assistant
6) Create by hand on developer.apple.com both "Mac App Distribution" & "Mac Installer Distribution" with your *.certSigningRequest
7) Provisioning Profiles -> Distribution -> create/fix custom provision for AppStore (I'm specially named it as "Mac provision profile for AppStore"
8) Xcode -> Settings -> Account -> Your account -> Refresh
9) Xcode Clean -> Archive -> Validate
I have been struggling with similar problem (I was building for Ad-Hoc distribution). Only thing that has changed since last successful deploy, was adding two devices to provisioning profile.
After double- and triple- checking all build settings, I regenerated provisioning profile (without changing anything), re-downloaded and it worked fine.
So note to self: if there is no logic explanation, you can always try good old IT voodoo.
I also recommend iPhone Configuration Utility, which despite its name, is useful for checking what provisioning profiles you have on computer.
ERROR ITMS-9000: “This bundle is invalid. New apps and app updates submitted to the App Store must be built with public (GM) versions of XCode 5.1.1 or higher and iOS 7 SDK. Do not submit apps built with beta software.
If multiple developers are using the same member center account. One of them can't use a certificate created by others cause they used a certificate request created using their computers.
You need to use a certificate created by you (certificate request
created using your computer).
Alternative, told them to send you the Developer Profile. not sure of the name. to use a certificate created on another computer.
Code signing Entitlements occur because of your resource does not contain Entitlements file in resources,Just go to build setting and search code signing Entitlements delete entry for debug and release, build project again you will see there is no error. Cheers
I had the same problem, but nothing written here worked for me. However, I found a simple way that worked for me. Here's how to do it:
1) In your Project and your Target(s) build settings, choose "None" for all Provisioning profiles, and choose "Don't Code Sign" for all Code Signing Identities.
2) Now, choose your Target and go to build settings. In Code Signing Identity Release setting, choose "iOS Distribution" for "Any iOS SDK". And then, in Provisioning Profile Release setting, choose your distribution profile for "Any iOS SDK". After that your Code Signing Identity Release setting should automatically change to "iPhone Distribution".
3) Archive your build and validate. Now it should work fine. That's it!

MinimumOSVersion problem in iphone sdk 3.0

i have installed the latest iphone sdk 3.0 beta 5, and trying to submit the first application build from this sdk,but when i upload to itunes connect, it give me the message "The binary you uploaded was invalid. The value provided for the key MinimumOSVersion is not acceptable." and cannot be uploaded. therefore i edit my info.plist file in the project and set this key to 2.2.1,like
<key>MinimumOSVersion</key>
<string>2.2.1</string>
and upload again but it still return the same message,have anybody met the same issues and how to get rid of this?
You SHOULD NOT specify MinimumOSVersion in your Info.plist. From the Information Property List Key reference:
MinimumOSVersion (String - iPhone OS, Mac OS X). When you build an iPhone application, Xcode notes the target OS (as determined by the Base SDK selection) as the MinimumOSVersion property. Do not specify this property yourself in the Info.plist file; it is a system-written property. When you publish your application to the App Store, the store indicates the iPhone OS release on which your application can run based on this property. It is equivalent to the LSMinimumSystemVersion property on Mac OS X.
What you need to do is change the Deployment Target setting in your project. The Deployment Target specifies the minimum OS you would like your application to run on. This is regardless of the SDK you build against, which should always be the most recent SDK so you can ensure your application runs correctly on the most recent OS version available. So, in short:
Set the Base SDK to be the latest OS available
Set the Deployment Target to be the earliest OS you'd like your app to run on.
Manually editing the Info.plist file is really just fooling the App Store into thinking your app can run on an OS it isn't built to run on, which could yield unpredictable results.
Please read the notice in the iPhone developer centre. You CANNOT use the iPhone 3.0 SDK to build apps for the App Store at the moment, not even if you compile them for the 2.x OS. You have to compile an app using the 2.x SDK to submit it to the App Store.
You can install both sets of developer tools side by side. When you get to the screen where you select which parts of the package you want to install, you can select an alternative destination for the install.
I had the same problem. Heres how to fix it!
My project was called SuperTennis, so I clicked the project in xcode, and clicked Get Info. Under the General tab, change "Base SDK for all iPhone configurations" to iPhone OS 2.0, then go into the build tab, and change "Base SDK" to "iPhone OS 2.0", then build it for your device. Reveal the app in finder, and then continue on, to upload it. Email me at ryan2925 at gmail.com if you want some more help. I hope this works for you, and anyone else reading.
I got this error when I finally upgraded things from 2.2.1 to the 4.0 SDK, and tried to use an existing project.
I had to:
Click on the project in XCode, then click on Info.
Click 'Build'
Pay attention to what 'Configuration' you are setting. Are you accidentally setting distribution when you are trying to debug?
Set 'Base SDK' to the highest possible.
Change 'Target Device Family' to whatever it is you are doing.
Set 'iPhone OS Deployment Target' to your device's OS (you can check by going to Window > Organizer).
My main time sink was setting my distribution settings when trying to debug and not realizing it.
Try this:
ARMV6: before iPhone 3GS
ARMV7: including and after iPhone 3GS
"Proj." and "Target(s)" right-click, Get Info. Select:-
Base SDK: iPhone 4.0 (latest s greatest)
Standard: ARMV6, ARMV7
Uncheck build for Active Architecture
Deployment Target: 4.0 (not older ones 3.1.3; you don't have the SDK if you upgrade to 4.0)
Compiler section: Ensure that both ARMV6 and ARMV7 checkboxes are ticked under Generate Code, Thumb section.
The binary output is slightly bigger as it is generic code that supports both architectures.
If you want to support ARMV7 only, don't check ARMV6 in compiler section, selection code optimised for ARMV7, check active architecture only. In info.plist, add armv7 in UIRequiredDeviceCapabilities items. This field already exists in info.plist and probably has other system requirements auto-specified.
Right click on your project and go to your build tab. Near the top of the list you can specify your Base SDK. This is the minimum you will compile against. After this your build settings drop down will have the older versions. When you go to make your distribution make sure you aren't using 3.0 cause that will cause your binary to get rejected (as you found out).