Way to change info.plist value without giving new build - ios

I have a function who is getting Base Url from info.plist's configuration key. I forgot to change that to Production and was in Staging state at the time of generating my build and now it is using development base url.
So is there any way to change that without giving a new build as it is very small change and for one thing i don't wish to publish a new build. I know it is not possible but still if anyone have any other solution, would be great help to me.

Your info.plist is part of the signed bundle. To change it you need to create a new build.

The only workaround that comes in my mind, you can make a 301-redirect from your stage to production.

Related

Reading an app setting value from iOS Settings-MyApp using Ionic

I want to create a app specific setting(app preference) in iOS(iPad) and read that in my Ionic(v5) code. I have seen plugins like https://github.com/chrisekelley/AppPreferences/ this but not working with the cordova-9 as it was not updated. Looks like this project is abandoned.I was able to create a setting bundle during the build and place it under the settings->Myapp (key-value) but from the program reading is not working.
My requirement is very simple. I need to externalize the back-end server IP/name as it might change sometimes. I was thinking if I can create a property under Settings->MyApp->Server then I can edit it in the Settings and read it while starting the app.
Is there a different approach that I can follow?
Please let me know if you have any pointers.

Ignore missing files in copy bundle resource Xcode 8

short
I got an error:
No such file or directory
But this is intentional. Is there a way to ignore this error? Or can I remove files from my copy bundle resources programmatically?
Background
I have an app for different providers. Every provider has different configs and get some different json-files. For example Provider1 has file1.json, file2.json, Provider2 has file1.json,file3.json, Provider3 has only file2.json and so on.
For every app upload the json-files can change (it's a settings thing). Now in my basic project I have references to every possible json-files. This files are filled with test data.
The work around is like this and full automatic:
Get individual json files for provider -> merge founded json files in my basic project and override existing jsons with test data -> start app upload with fastlane
Usually I uncomment all test data before I upload a new version. So every possible reference is okay in XCode.
Now I forgot to uncomment things and a provider receive wrong files with my test data.
To solve that problem I set a git ignore. So in my project are only the jsons files that the provider needs. But the references from my project file are still existing. So I understand why the error appears.
How can I solve that problem smart?
I solve the problem... it's dirty but it works.
In the merging process I clean my data by shell before the provider data override some of them:
cd goToPathWhereFilesAre
echo "" > file1.json
echo "" > file2.json
So my references are always correct and the content is empty, either the provider data are override them.
EDIT and thanks #Anton Tropashko for the cleaner way
cd goToPathWhereFilesAre
touch file1.json
touch file2.json
You should create a target for each provider. And set each file (config/json) with the proper targets...
Don't you ever work manually on differentiating versions!!! Good luck

Branch io deeplink not working in Test environment (Working in LIVE with same code)

Branch io deeplink has stopped working for my app in test environment since today morning.
Though it has stopped only in test environment and is working in the LIVE environment (with the exact same code), I want the test environment also to be working fine so that I am confident in uploading my build.
Searched but could not find anything related to this.
(It was working till last week and I haven't done any code or setting change since a long time)
Thanks in advance for any help
Had mailed the Branch team. Got a very quick reply. Here it is:
Thanks for writing in. So sorry for the issue here - this is because Apple recently limited the size of AASA files with the release of 9.3.1, and we therefore had to remove our test schemes from the AASA file. We're recommending that everyone test with their live schemes if using bnc.lt. Alternatively, you could set up a custom domain with your test scheme. Either way, rest assured that your live scheme will still work in production.
Also, they don't seem to have a near future plan to re-add the test schemes to the AASA files so they recommend us testing with our live Dashboard or using a custom domain for our test dashboard.

Read config settings from PhoneGap app

Apparently I'm terrible at Googling. All I want to do is have the ability to read my web service URL from a config file in my PhoneGap app. Also, be able to modify that value during the build process. Is this named alot different in Xcode? I think I need to save this value in the plist file. If that's the case, then I can just set a user-setting in my build configuration stuff to have it change depending on which build type, Dev/Release.
If that's true, how do I access this from PhoneGap?
I'm guessing this question will get closed, but where else do I go for help...
plist file for cordova project already depreciate since v2.2. Cordova v2.3 start using config.xml.
Target > Edit Scheme
You could probably use hooks to accomplish everything that you are trying to do without changing around the config.xml file, but I'm not entirely sure this is supported with Phonegap (it is with Cordova.)
Check out the official help page to use the /hooks/ folder to modify anything during the build process: https://github.com/apache/cordova-cli/blob/master/templates/hooks-README.md
This blog post also seems pretty useful: http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/ it talks about changing things based on the environment and I'm sure it'd be easy to extend that to changing based on dev/release.
You could store the link to your web service probably as a config variable. I'm trying to figure out how you can add a config variable and will report back if I get it. In the mean time you could probably just have something like a server.txt file that you change with hooks.

Switch between development version and live version

Does anyone have any good techniques for easily switching between development and live builds for asp.net mvc websites? Every time I make some changes I need to change to go through my web.config and comment out all my local stuff and uncomment all my remote settings. I also need to update the linq-to-sql dbml file to point to the right connection string.
This happens every time I make a change in a controller. After I upload the changes I then have to do the same process and get it back to development (local) mode.
Is there an automatic way to handle this, or at least one setting that can flag between the two?
Thanks
a way I've done is to make two groups of configuration settings
<LiveSomeSetting>something</LiveSomeSetting>
<TestSomeSetting>anotherthing</TestSomeSetting>
Then in my class that reads configuration info, I'd check on something like the system environment / computer name and if applicable to the name of your LIVE machine look at the settings... otherwise the development.
if (System.Environment.MachineName.ToLower().StartsWith("devMachineName"))
IsLive = "Test";
else
IsLive = "Live";
Application["IsLive"] = IsLive;
SomeSetting = ConfigurationManager.AppSettings[IsLive + "SomeSetting"];
I use a simple technique that Scott Hanselman blogged in '97. It basically involves maintaining separate web.config files for each of you build types. Then there is a pre-build event which copies the correct web.config into place.
It does have the down side of having to maintain 2+ web.config files but once you're up and running it isn't really that big an issue.
Have a look here at the article:
Managing Multiple Configuration File Environments with Pre-Build Events
HTHs,
Charles

Resources