Xcode - File into app’s bundle for Integration builds only - ios

I have added one plist file called temp.plist into my app's bundle. I have added some data into that plist file.but i don't want that file to be bundled into my app for production builds(because that file can increase the size of an app). i just want that file into my app's bundle for integration builds only.
Is there any way to achieve this?
Should i add any scripts in the build phase? depending upon the configuration(Integration or Production) that file should be added and removed from the app's bundle.
I don't have any context on this so can anybody help me with this.

Related

sticker extension CFBundleVersion mismatch

NOT A DUPLICATE (see more below).
ItunesConnect gives me a warning with :
appex does not match the CFBundleVersion
It seems the error is related purely to the appex which seems to be a compiled version of my sticker extension.
Both targets (app and stickers) obviously have the same CFBundleVersion (both in plist and in target > general > build).
The culprit is the plist inside the .appex file (can see it with show package contents), i don't understand why it is different from the one used by the target.
From what i found it seems when archiving xcode creates a new .app file that will be only in the archive thus creating a new plist file but apparently some things in the appex file are not updated.
What are the possible options to fix this permanently ? I modified the value inside the file but i am not sure it will stick.
So if any of you guys uses a build script to bump your CFBundleVersion make sure to place it before the Copy Bundle Ressources phase.

How do I install the XCUITest runner app and ipa on a real device and get the results?

How do I install the XCUITest runner app and ipa on a real device and get the results?
I have a runner.app that was generated by building it for testing, and a deployed/signed .ipa.
Now what I would like to happen is to have it installed on a real device, execute it, and get the device log.
You can use bundleId :
let app = XCUIApplication(bundleIdentifier: "yourapp.bundle.id")
You can try to use:
xcodebuild test-without-building -xctestrun somepath/YourAppName_iphoneos14.4-arm64.xctestrun -destination 'platform=iOS, id=some_id'
I moved YourAppName_iphoneos14.4-arm64.xctestrun, YourAppName.app,
YourAppNameUITests-Runner.app to some local folder from a regular Library/Developer/etc.. build folder. Then I opened *.xctestrun file, which is an xml file, and modified paths to my local folder manually.
I couldn't find any official information about it but it seems like the *.xctestrun file is used by xcodebuild in order to find all relevant artefacts i.e both app folders. I would guess that's how they manage to run tests just with app's or ipa's without source code on various clouds...
PS. The question was about IPA, but it's convertible to the app, right? At least there is a thread - How to convert .ipa to .app file?
Edited with answer...
It is possible to achieve this. In order to build an ipa of the UI Testing app bundle you can follow these steps:
Open your project containing in Xcode.
Select the device you'd like to build the ipa for next to the scheme. This can be an actual device or a simulator.
Product > Build For > Testing
Find [your_ui_test_bundle_name].app file in Derived Data.
Derived data by default is located at ~/Library/Developer/Xcode/DerivedData/
To locate this file, dive into DerivedData for your project, navigating to Build > Products and then the respective directory based on what you chose in step 2. If you chose a simulator, look in -iphonesimulator/ or if you chose a device look in -iphoneos/. The UI test bundle .app file should be in that directory.
Create a directory named Payload case sensitive and it must be named this.
Move the .app file into the Payload directory.
Compress the Payload directory.
Rename the compressed directory to have a file extension of .ipa. You'll be prompted and select Keep .ipa.
Now you have you UI test bundle application saved as an ipa. You can also upload this ipa to a device manually in Xcode via the following process (bonus info, yay!)
Window > Devices and Simulators
Select your connected device.
Tap the + button under Installed Apps.
Navigate to and select your UI test .ipa file that you compressed previously.
It should install onto the device.
Credit where it is due: https://medium.com/ios-os-x-development/how-to-run-your-iphone-test-on-aws-device-farm-98f18086811e

Is it possible to add content into ipa file?

In Android we can extract apk files and add content of these files into a single file. we can also entry the newly added activity in android.manifest file.
Is it possible to add content in ipa and rebuilt it for device?
Please help me.
Is it possible to add content in ipa and rebuilt it for device?
No. From your comment above, you're looking to modify the application itself by adding view controllers. That would require rebuilding the application, and you'd need the source code for the app for that, not the .ipa file.
It is possible to modify resource files in the archive and then re-sign the .ipa file, so you could change an icon, replace images, etc. But adding view controllers is different because they need to be compiled and linked with the rest of the application code.
No you cannot modify any ipa file once it is built. However, you can view the content of particular app file by converting ipa to app . After you have converted an ipa file to app file you can check the content by right click on it and the choose show package content.
How to convert ipa to app file:
Right click ipa file -> open with archive utility (or winrar), it will create an app file, right click app file - > show package content.
If you are trying to get source code of the app and edit according to your requirements then it may not be possible with the app available to app store but i can't say for enterprise app.
iPA stands for iPhone Achieve and any changes in iPA can produce problem to build so if it needs to add few Xib or Viewcontroller then its better to add these in xcode and run and build new iPA . Hope this helps.

What "source code files" are needed to turnover (continue develop of) an iOS application?

I am working with a developer on an iOS app and upon completion, all source code, files, etc. should be turned over to me so that I can continue development in the future with another developer if necessary. I need help understanding exactly which files I should receive.
Should I be ok with .ipa file? Or maybe .app file? Or the Xcode project file? What will ensure that I have all I need to continue development in the future?
You will receive the project folder, which contains a .xcodeproj file and other files such as images assets. You can download a demo project from here.
You won't receive an .ipa file because the .ipa files are the ones you download from the App Store (they have been archived), hence no one can see their code so people can't steal it.

Titaniumn app to not run in background - Without changing info.plist

I'm trying to make my app not run in the background using Appcelerator Titanium, and have only come accross the solution which suggests editing the info.plist file after the build has completed.
<key>UIApplicationExitsOnSuspend</key>
<true/>
This works as expected, however this means I would have to put this in each time I do a full rebuild on the app. Does anybody know of anything i can put in the tiapp.xml file in order to acheive this?
Thanks
You can just copy the built info.plist into your Resources folder once. From http://developer.appcelerator.com/blog/2010/04/adding-custom-fonts-to-ipad.html
"As an update for those using 1.3+, we’ve changed the way that custom Info.plist files are handled in Titanium. You’ll want to copy the Info.plist that is generated for your project under build/iphone into your project root folder. You can edit this file to add any custom Info.plist changes. From now on, Titanium compiler will always use this Info.plist."

Resources