Skip to content

Commit cc8f4aa

Browse files
[Firebase AI] Add x-ios-bundle-identifier header to requests (#15515)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Andrew Heard <andrewheard@google.com>
1 parent 66d1af3 commit cc8f4aa

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

FirebaseAI/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 12.7.0
2+
- [fixed] Fixed support for API keys with iOS+ app
3+
[Bundle ID restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions)
4+
by setting the `x-ios-bundle-identifier` header. (#15475)
5+
16
# 12.6.0
27
- [feature] Added support for
38
[Server Prompt Templates](https://firebase.google.com/docs/ai-logic/server-prompt-templates/get-started).

FirebaseAI/Sources/GenerativeAIService.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@ struct GenerativeAIService {
179179
} else {
180180
urlRequest.setValue(firebaseInfo.apiKey, forHTTPHeaderField: "x-goog-api-key")
181181
}
182+
if let bundleID = Bundle.main.bundleIdentifier {
183+
urlRequest.setValue(bundleID, forHTTPHeaderField: "x-ios-bundle-identifier")
184+
}
182185
urlRequest.setValue(
183186
"\(GenerativeAIService.languageTag) \(GenerativeAIService.firebaseVersionTag)",
184187
forHTTPHeaderField: "x-goog-api-client"

FirebaseAI/Sources/Types/Internal/Live/LiveSessionService.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,9 @@ actor LiveSessionService {
365365
var urlRequest = URLRequest(url: url)
366366
urlRequest.timeoutInterval = requestOptions.timeout
367367
urlRequest.setValue(firebaseInfo.apiKey, forHTTPHeaderField: "x-goog-api-key")
368+
if let bundleID = Bundle.main.bundleIdentifier {
369+
urlRequest.setValue(bundleID, forHTTPHeaderField: "x-ios-bundle-identifier")
370+
}
368371
urlRequest.setValue(
369372
"\(GenerativeAIService.languageTag) \(GenerativeAIService.firebaseVersionTag)",
370373
forHTTPHeaderField: "x-goog-api-client"

FirebaseAI/Tests/Unit/TestUtilities/GenerativeModelTestUtil.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ enum GenerativeModelTestUtil {
6969
XCTAssertEqual(firebaseAppID, dataCollection ? "My app ID" : nil)
7070
XCTAssertEqual(appVersion, dataCollection ? expectedAppVersion : nil)
7171

72+
let bundleID = request.value(forHTTPHeaderField: "x-ios-bundle-identifier")
73+
XCTAssertEqual(bundleID, Bundle.main.bundleIdentifier)
74+
7275
if let authToken {
7376
XCTAssertEqual(
7477
request.value(forHTTPHeaderField: "Authorization"),

0 commit comments

Comments
 (0)