I upload my iOS app and most of the app metadata to iTunes Connect using fastlane deliver. Most of the data and screenshots can be put into files that I then have stored in git.
This includes for example the review notes that are stored in a file
fastlane/metadata/review_information/notes.txt
In iTunes Connect there is a bit of information in the TestFlight part under "Test Information" called "Beta App Description". I would like to also upload this text using fastlane.
In the fastlane deliver docs I have found the parameter called "beta_app_description" and as far as I can read, this is exactly that. This is a command parameter and as such muct be spefified directly in the Fastfile or Deliverfile.
I would like to have fastlane load this from a file just like all the other metadata.
Is this possible and how?
Besides deliver (or upload_ios_app) there is a testflight (or upload_to_testflight or pilot) action in fastlane:
https://docs.fastlane.tools/actions/testflight/
As the name suggests, it is used for everything Testflight, which includes the beta description:
beta_app_description | Provide the beta app description when uploading a new build
https://docs.fastlane.tools/actions/testflight/#parameters
pilot is also the name of a connected command line tool, that has additional options:
https://docs.fastlane.tools/actions/pilot/
Unfortunately, getting this data from a file is not part of any of those.
It can be easily provided as a parameter to testflight action.
And if you like to format your text or provide more than just a sentence, you can use groovy's multi-line strings, e.g.:
upload_to_testflight(
beta_app_description: "Have fun testing the app!",
changelog:
"""This is my multi-line changelog
with information for my testers.
* align left to avoid blanks at the beginning of a line
* this allows nice formatting...
* ...and blank lines in between
Hope, you find it useful."""
)
Related
I've been struggling to verify if the purpose string for photo library access really is working as expected. It started with the application got rejected because it wasn't set.
Using expo-image-picker, it says in the docs that adding this into the plugins section in app.json should set the NSPhotoLibraryUsageDescription:
[
"expo-image-picker",
{
"photosPermission": "This allows you to upload a photo to your Appname profile."
}
]
Before I added this, I basically added NSPhotoLibraryUsageDescription to the plist key inside ios section in app.json. What I can see, both do exactly the same thing.
After building ios using expo build:ios I was able to verify that that the string existed in the Info.plist file:
<key>NSPhotoLibraryUsageDescription</key>
<string>This allows you to upload a photo to your Appname profile.</string>
Using Expo Go doesn't really help since when requesting permissions, it says "Expo Go" in the alert.
Also, I only have experience working with Expo / React Native, and have no access to a mac (or xcode).
When apple test this, it looks like this (according to their screenshot):
While the expected text should be:
This allows you to upload a photo to your Appname profile.
How can I verify that the purpose string is really set (and works) before submitting an application to App store?
My solution:
First I set up my app for an EAS build. If you're not familiar with that you should check out the docs: https://docs.expo.dev/build/introduction/
Basically you do this:
install eas-cli: npm install -g eas-cli
run eas build:configure to initialize an eas.config file.
configure your eas build profiles. Mine look like this:
I collapsed the submit block to hide my credentials. Sorry for the photo instead of code/text. The formatter kept messing it up.
Any way, trigger a build using eas build -p ios --profile development. Notice the simulator flag set to true. This will allow you to run this as a stand-alone binary in your simulator.
When your build completes, go to expo.io and log into your account. Click on your project and download the binary for your ios build (under the builds tab). Unzip the binary and drag it into your simulator. You may be prompted with a message that says that you need to start up your development server. Just follow those simple instructions and there you go. You'll be able to see if your NSPhotoLibraryUsageDescription string updated.
Admittedly, this can be a pain in the (insert donkey emoji here - still don't have one yet Apple....😡) and you're kind of executing outside of the expo environment, but it solves the problem of wondering if your string has updated before posting to the store again.
Best of luck. Hope that helps.
Hope you are doing well
I know there are a lot of questions about this already, And I followed all answers but I am fairly certain my question has not been answered yet.
I uploaded a build of my iOS app via Xcode or Application Loader with validation , and that went well. I got to the a message of "Uploaded Successful", so I thought it was okay.
Then I went to check in iTunes Connect and I can see a build ( under "Activity") with activity status processing . I waited for an hour but after that its gone.
I given access whole privacy and library in info.plist
Now I have uploaded 20+ time but same thing happen and I didn't get any single warning, error and mail than how can find exact solution. i have attachment screen short so please check and suggest to how to resolve this.
Again I uploaded new version whatever you give instruction and i followed step by step so now i attachment shcreenshort with
1 App info -version and build
App Info image
2 info-plist - version short string and build
Info-Plist image
3 archive - using new latest Xcode Version 9.4.1 (9F2000)
Archive Image
4 validation - validation message
Validation message Image
5 uploaded - uploaded successfully message
Uploaded message image
6 iTunes version - app version and iTunes version are same.
Itunes Version image
7 activity status - activity status is processing and after few min its disappears
app Activity builds status
From all the information I get from the comments I think there's a version/build difference between the builds you are uploading try to set the version 1.1 and build 1 for the app :-
Update
Looks like the issue is in your info.plist You need to add appropriate privacy messages string for the services you're using in the app for example for the Camera you have mentioned "Open camera permission", This doesn't specify why the app require to use the camera? the message should be something like "This app requires your permission to access Camera to capture property pictures for the services provided by the application." (Message will be according to your app requirement).And you need to update all the privacy messages.
thanks for response me. Finally i resolve this issues.
firstly u need to two factor authentication.
After that use latest application loader.
open Xcode and click top Xcode ->open developer tool ->application loader
login with your developer mail id and password is two factor auth App specific password (two factor auth security options )
hope this is help to all.
thanks
I'm trying to configure deliver to send up my metadata for my app...
Following the screenshot here https://github.com/fastlane/fastlane/tree/master/deliver#readme
Specifically this one...
I have created my metadata folder...
However, when I first uploaded with fastlane deliver it didn't do several things.
It didn't add the app icon, it did add the marketing URL, the categories etc...
I added them manually myself on iTC and then today I've done another upload from fastlane deliver and it removed all that data again.
I have tried to find how to configure this stuff but the documentation is lacking (literally, this screenshot is all I have found).
For example... how should I upload the app icon? The content of the app_icon.txt file is ./fastlane/metadata/appicon.png. But I'm not sure where that path should be relative to?
The contents of the marketing_url.txt is http://thewebsite.com but that gets removed on each upload. But the copyright.txt works.
Is there somewhere I can see examples of what this data looks like?
The categories are also removed on each upload but I don't know what the text should be there? I have just got the name of the category (i.e. Health & Fitness) Is that wrong?
Any help or preferably a link to some docs would be very helpful.
The best way to get started with a correct metadata directory structure is to delete the metadata folder and the Deliverfile and run fastlane deliver init.
For the app icon, you'll have to provide a path to the file you want to use: https://github.com/fastlane/fastlane/blob/master/deliver/Deliverfile.md#app_icon
Actually, fastlane deliver works like Git. Before you execute "fastlane deliver", you should download metadata everytime using this code:
fastlane deliver download_metadata\
--username ${user_name}\
--app_identifier ${bundle_id}\
--force true
Only then you can modify your metadata and execute "fastlane deliver", just like "git pull" and "git push".
When I use the below command specifying the path to the IPA, upon upload success and checking the download page from Mobile Safari I get a message that seems to say that my device wasn't provisioned to download the app when it fact it was.
PATH_TO_CRASHLYTICS/Crashlytics.framework/submit ${API_KEY} ${API_SECRET} -ipaPath ${IPA_PATH}
If I omit the -ipaPath parameter (which presumes that there's an xcarchive file generated) but not only will the upload succeed, I can get the build to be downloaded to my device without the above error message.
Fabric/Firebaser here!
For visibility for other members of the Fabric community, I believe adding the UDID should be the correct resolution path here.
Also, following this link would provide you the correct run script build phase to have your dSYM uploaded without needing to add the -ipaPath parameter.
I am writing a script that uses the iTMSTransporter command-line application to create and upload iOS application metadata for the iOS App Store. However, it's failing in the most bizarre way with little of any helpful information.
Apple's web service operation was not successful
Unable to authenticate the package: Benders.itmsp
ERROR ITMS-4157: "Version '2.1.10' is not valid for update or doesn't exist" at Software/SoftwareMetadata (MZItmspSoftwareMetadataPackage)
Of course version 2.1.10 doesn't exist--that's what I'm trying to create! Is there some kind of special flag that is needed to create new versions of an app at the command line? I've scoured the -help documentation in the tool itself, but can see no such argument.
I feel like I've just run into a brick wall. Googling has turned up nothing.
As far as I'm concerned it is at the moment not possible to create new versions of your app with the command line tools (iTMSTransporter). You have to do this manually with iTunesconnect. Once the version exists on ITC, you can upload your data with iTMS.
That said the workflow is really bad here, because you cannot do all the important stuff with the command line tool and we are still depending on the moods of ITC.
Does the version info you've submitted to Apple match what you've supplied in your package?
See:
Submitting the App
Replacing Your App with a New Version