Where should I add GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED? - ios

I'm reading Firebase release notes and it seems that after version 6.29.0 they've adapted to the new iOS 14 tracking requirements and they offer a way to not automatically initialize SKAdNetwork:
[SKAdNetwork registerAppForAdNetworkAttribution] is now automatically called on first open by default. To opt-out of this default behavior, add the key GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED with Boolean value NO to your app’s Info.plist file.
I want to trigger SKAdNetwork myself, but it's unclear to me if by app's Info.plist they mean:
Option 1: The Info.plist created when you do Xcode, File, New, Project (the one that contains URLTypes, App Schemes, ...)
Option 2: GoogleService-Info.plist
I think they mean option 1, but I'm not totally sure as everything in Firebase is usually configured by option 2.

It's Option 1.
The GoogleService-Info.plist is supposed to be unused unmodified from the Firebase console download and is backend configuration information.
The app's Info.plist is for app specific configurations.

Related

Does Google AdMob Require Info.plist exactly?

I am trying to set up Google AdMobs on a project that I have already set Firebase up in. I have been trying to follow the Update your info.plist section of the AdMob documentation here: https://developers.google.com/admob/ios/quick-start#swift
but I keep getting the "reason: 'The Google Mobile Ads SDK was initialized without an application ID. Google AdMob publishers, follow instructions at https://googlemobileadssdk.page.link/admob-ios-update-plist to set a valid application ID. Google Ad Manager publishers, follow instructions at https://googlemobileadssdk.page.link/ad-manager-ios-update-plist." Error.
I am wondering if it is because my plist is named GoogleService-Info.plist rather than Info.plist (This is the name given by default when I first began using Firebase). If I try to rename the file to just Info.plist, the firestore part of my project breaks. Does AdMob require Info.plist to be named exactly that?
I found that it does matter what plist I add Google AdMob to. XCode 13 got rid of the Info.plist but you can manually create an info.plist by following this guide: https://betterprogramming.pub/info-plist-is-missing-in-xcode-13-heres-how-to-get-it-back-1a7abf3e2514
Pasting to info.plist solved the issue for me.
I would recommend you to dig more about Info.plist. See this official docs and this medium blog.
First, Info.plist and GoogleService-Info.plist are used for different purposes. If you rename those files some of the service will break surely.
Second, Even if XCode 13, there is Info.plist(though you can't see in project navigator for fresh project). See this medium blog how to configure Info.plist for XCode 13

App Store Connect issue ITMS-90129 keeps blocking upload

App Store Connect keeps blocking App upload by issuing
ITMS-90129: The bundle uses a bundle name or display name that is already taken.
So far I tried:
Changing the Display Name, Bundle Identifier (even with generated Hashcodes to make sure that the names really are not taken already)
Created alternative Profiles, Identifier and App in App Store Connect (also using the same mentioned hashcode)
Tried these changes in the Xcode input fields (under 'General') and also directly modifiyng the Info.Plist
Re-Exporting the project from Unity to XCode with the new naming (to make sure Unity is not writing some bundle id somewhere which is not visible in XCode)
(Update) Tried to Clean the build folder based on
minchaej suggestion
Additional information: The XCode project is exported from Unity and we're using Firebase which is installed via Pods.
I'm grateful for any hint where to continue looking - because I'm really running out of ideas. Thanks a lot for taking the time.
Cheers
vik
The solution for this (probably very Unity-to-XCode specific) issue was localization related:
I had to remove all but the English localization entry in the Localization section.
I'm not sure why there were other loca resources before (since we didn't set them up) but I assume these included an alternative app name which was causing the ITMS-90129 to pop up.
My salvation for ITMS-90129 is the next:
Remove definitions for
CFBundleName
CFBundleDisplayName
CFBundleSpokenName
for base(en) localisation InfoPlist.strings.
Setup this variables with single value $(PRODUCT_NAME) directly in Info.plist
Variable $(PRODUCT_NAME) define via root project Build Settings/Packaging/Product Name
Setup variable LSHasLocalizedDisplayName in YES value in Info.plist
Setup Russian (or other) localisation for variables
CFBundleName
CFBundleDisplayName
CFBundleSpokenName
via InfoPlist.strings
As I am personally assume, setup this variables via base localisation is the key of problems in which I am faced with

how can we add user defined settings in xcode 9 while we are making a framework

I am making a framework and I want to add a user defined variable to its settings. I am using xcode 9, but the option for adding the user defines settings is disabled. Is there any way possible to add the same.
You can't as Settings.bundle must be unique per app installation, the only thing you can do is prepare your framework for process the need settings and externally to your framework provide a sample *.plist with the default settings as an example.

iOS - Missing CFBundleIconName in Xcode 9.2

I am uploading build to release app using Xcode 9.2 built with iOS 11 SDK. Binary is archived and uploaded successfully, but I get the following email back.
Dear developer,
We have discovered one or more issues with your recent delivery for
"". To process your delivery, the following issues must be corrected:
Missing Info.plist value - A value for the Info.plist key
CFBundleIconName is missing in the bundle ''. Apps that provide icons
in the asset catalog must also provide this Info.plist key. For more
information see
http://help.apple.com/xcode/mac/current/#/dev10510b1f7. Once these
issues have been corrected, you can then redeliver the corrected
binary.
Regards,
The App Store team
I found a solution.
Missing CFBundleIconName in Xcode9 iOS11 app release
But i need little bit more. I don't want to use *.xcassets file for app icon. I want to use image in xCode project folder for app icon.
Is it possible in xCode 9.2? if yes then how?
Haven't seen this listed on any of the other posts but this was my issue.
Make sure to check the target membership of your assets directory! If you do not correctly link the membership here, you will get this same super-generic error(Apple should do something about the error messages).
The target membership should correlate directly to targets for which you are using the icons. For example, I use this single directory for both my main app, and watch app assets, you must specify this by selecting the appropriate member.
There is a direct option not to use app icon from Assets

iOS PRODUCT_NAME not the display and wrapper name

For my iOS app I am trying to have multiple build configurations so I can create development and production builds that target different servers, configurations etc.
In Xcode I have created another build configuration and scheme to target this configuration. So I have the separate configuration/schemes as:
Dev version
PRODUCT_NAME=MyApp-dev
BUNDLE_IDENTIFIER=com.organisation.myapp-dev
Original Version
PRODUCT_NAME=MyApp
BUNDLE_IDENTIFIER=com.organisation.myapp
Both configurations can be built with the different schemes. Both will run on the same device because of the different identifier, but the dev version still shows MyApp on the home screen. When looking in the build products, it produces a MyApp.app bundle with a target inside it of MyApp-dev.
Is there another setting to change the wrapper name from MyApp.app to MyApp-dev.app? And any other setting that may be preventing PRODUCT_NAME setting to be used in the app display name?
edit: In the info.plist file, both the CFBundleName and CFBundleDisplayName are set to $(PRODUCT_NAME)
n.b. I have done this before with another app and all is working fine there, hence the query if another developer has changed a more targeted setting that overrides this change.
There was a InfoPlist.strings file in the project that was overriding CFBundleDisplayName. I removed this definition from this file and all worked as desired.
The project is not localised and so I never considered this override! Hopefully if someone else comes across this, remember settings in Info.plist can be overriden with localised strings in this file.

Resources