Skip to content

Commit a510e2a

Browse files
authored
chore: merge dev into main
2 parents 5d3397d + 4ee5afa commit a510e2a

36 files changed

+2109
-845
lines changed

.github/PULL_REQUEST_TEMPLATE/pull_request_template.md renamed to .github/pull_request_template.md

File renamed without changes.

CHANGELOG.md

Lines changed: 78 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
## [1.2.0-dev.1](https://github.com/pinpong/react-native-google-maps-plus/compare/v1.1.0...v1.2.0-dev.1) (2025-10-09)
2+
3+
### ✨ Features
4+
5+
* add kml layer support ([4faf558](https://github.com/pinpong/react-native-google-maps-plus/commit/4faf558425831cc18a6e9c9e2d20ef0c4f42e702))
6+
* add kml layer support ([35098bd](https://github.com/pinpong/react-native-google-maps-plus/commit/35098bd4c75b825f96f58696cbb37a4fcdebbdb8))
7+
8+
### 🐛 Bug Fixes
9+
10+
* **example:** build issues ([cee0708](https://github.com/pinpong/react-native-google-maps-plus/commit/cee0708dfdee185ee4c8bb2836abd2a3c022fc93))
11+
12+
### 🛠️ Other changes
13+
14+
* **ci:** move PR template to root for auto-apply ([03e8a84](https://github.com/pinpong/react-native-google-maps-plus/commit/03e8a8438b0d5edab80fcdf2f2c8abf3372288c2))
15+
* **example:** beautify example app UI ([4f390ec](https://github.com/pinpong/react-native-google-maps-plus/commit/4f390ecd9ebc2f3e559913882ac56d33a30ac45b))
16+
* **example:** beautify example app UI ([73c997c](https://github.com/pinpong/react-native-google-maps-plus/commit/73c997c69f23deeb48eb9b2be5df76a36ff0afea))
17+
* fix CHANGELOG.md ([2f2bb2c](https://github.com/pinpong/react-native-google-maps-plus/commit/2f2bb2c617260166551abbc07dfa9a8ae27cf31e))
18+
119
## [1.1.0](https://github.com/pinpong/react-native-google-maps-plus/compare/v1.0.2...v1.1.0) (2025-10-08)
220

321
### ✨ Features
@@ -45,164 +63,90 @@
4563

4664
### 🐛 Bug Fixes
4765

48-
* build script ([d1f11f2](https://github.com/pinpong/react-native-google-maps-plus/commit/d1f11f237900f929689b72dfb41054dac0790a37))
49-
* release ([#18](https://github.com/pinpong/react-native-google-maps-plus/issues/18)) ([b271ccc](https://github.com/pinpong/react-native-google-maps-plus/commit/b271ccc69f9cb3e48c865801bdd104fd6065b557))
50-
51-
# react-native-google-maps-plus
52-
53-
[![npm version](https://img.shields.io/npm/v/react-native-google-maps-plus.svg?logo=npm&color=cb0000)](https://www.npmjs.com/package/react-native-google-maps-plus)
54-
[![Dev Release](https://img.shields.io/npm/v/react-native-google-maps-plus/dev.svg?label=dev%20release&color=orange&logo=githubactions)](https://www.npmjs.com/package/react-native-google-maps-plus)
55-
[![Release](https://github.com/pinpong/react-native-google-maps-plus/actions/workflows/release.yml/badge.svg)](https://github.com/pinpong/react-native-google-maps-plus/actions/workflows/release.yml)
56-
[![Issues](https://img.shields.io/github/issues/pinpong/react-native-google-maps-plus?logo=github)](https://github.com/pinpong/react-native-google-maps-plus/issues)
57-
[![License](https://img.shields.io/github/license/pinpong/react-native-google-maps-plus?logo=open-source-initiative&logoColor=green)](./LICENSE)
58-
[![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?logo=prettier&logoColor=white)](https://prettier.io/)
59-
[![TypeScript](https://img.shields.io/badge/%3C/%3E-TypeScript-blue.svg?logo=typescript)](https://www.typescriptlang.org/)
60-
[![Lint](https://img.shields.io/badge/lint-eslint-green.svg?logo=eslint&logoColor=white)](https://eslint.org/)
61-
[![React Native](https://img.shields.io/badge/react--native-%3E%3D0.81.0-61dafb.svg?logo=react)](https://reactnative.dev/)
62-
[![Platform: Android](https://img.shields.io/badge/platform-android-green.svg?logo=android&logoColor=white)](https://developer.android.com/)
63-
[![Platform: iOS](https://img.shields.io/badge/platform-iOS-lightgrey.svg?logo=apple&logoColor=black)](https://developer.apple.com/ios/)
64-
65-
React-native wrapper for android & IOS google maps sdk
66-
67-
## Installation
68-
69-
`react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/).
70-
71-
```sh
72-
yarn add react-native-google-maps-plus react-native-nitro-modules
73-
```
66+
* **example:** build issues ([cee0708](https://github.com/pinpong/react-native-google-maps-plus/commit/cee0708dfdee185ee4c8bb2836abd2a3c022fc93))
7467

75-
### Dependencies
76-
77-
This package builds on native libraries for SVG rendering and Google Maps integration:
78-
79-
- **iOS**: [SVGKit](https://github.com/SVGKit/SVGKit)
80-
- **Android**: [AndroidSVG](https://bigbadaboom.github.io/androidsvg/)
81-
- **iOS Maps SDK**: [Google Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk)
82-
- **Android Maps SDK**: [Google Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk)
83-
- **Maps Utility Libraries**: [Google Maps Utils for iOS](https://developers.google.com/maps/documentation/ios-sdk/utility) and [Google Maps Utils for Android](https://developers.google.com/maps/documentation/android-sdk/utility)
84-
85-
These are automatically linked when you install the package, but you may need to clean/rebuild your native projects after first install.
86-
87-
## Setup API Key
88-
89-
You will need a valid **Google Maps API Key** from the [Google Cloud Console](https://console.cloud.google.com/).
90-
91-
### Android
92-
93-
It's recommend to use [Secrets Gradle Plugin](https://developers.google.com/maps/documentation/android-sdk/secrets-gradle-plugin) to securely manage your Google Maps API Key.
94-
95-
---
96-
97-
### iOS
98-
99-
See the official [Google Maps iOS SDK configuration guide](https://developers.google.com/maps/documentation/ios-sdk/config#get-key) for more details.
100-
101-
1. Create a `Secrets.xcconfig` file inside the **ios/** folder:
102-
103-
```properties
104-
MAPS_API_KEY=YOUR_IOS_MAPS_API_KEY
105-
```
106-
107-
Include it in your project configuration file:
68+
### 🛠️ Other changes
10869

109-
```xcconfig
110-
#include? "Secrets.xcconfig"
111-
```
70+
* **example:** beautify example app UI ([4f390ec](https://github.com/pinpong/react-native-google-maps-plus/commit/4f390ecd9ebc2f3e559913882ac56d33a30ac45b))
71+
* **example:** beautify example app UI ([73c997c](https://github.com/pinpong/react-native-google-maps-plus/commit/73c997c69f23deeb48eb9b2be5df76a36ff0afea))
72+
* fix CHANGELOG.md ([2f2bb2c](https://github.com/pinpong/react-native-google-maps-plus/commit/2f2bb2c617260166551abbc07dfa9a8ae27cf31e))
11273

113-
2. Reference the API key in your **Info.plist**:
74+
## [1.1.0](https://github.com/pinpong/react-native-google-maps-plus/compare/v1.0.2...v1.1.0) (2025-10-08)
11475

115-
```xml
116-
<key>MAPS_API_KEY</key>
117-
<string>$(MAPS_API_KEY)</string>
118-
```
76+
### ✨ Features
11977

120-
3. Provide the key programmatically in **AppDelegate.swift**:
78+
* add heatmap support ([ddcfccf](https://github.com/pinpong/react-native-google-maps-plus/commit/ddcfccf4cbb08b2756c20ca7215a8fe45e30befb))
79+
* add heatmap support ([96a3a08](https://github.com/pinpong/react-native-google-maps-plus/commit/96a3a08696e38f77db356d9e0e71a6e6b98a589f))
80+
* add map ui settings support ([7921f49](https://github.com/pinpong/react-native-google-maps-plus/commit/7921f4941f6656fe9c588d4f5e9d1f5594632598))
81+
* add mapCircle support ([8e32d14](https://github.com/pinpong/react-native-google-maps-plus/commit/8e32d14ae6d3e8254a46ffbb19fd3eb26575f46d))
82+
* add mapId support ([75f73fa](https://github.com/pinpong/react-native-google-maps-plus/commit/75f73fac949f8e2a5112e1456226e60de8540474))
83+
* add mapType ([754df51](https://github.com/pinpong/react-native-google-maps-plus/commit/754df51a8819ce5475d29262bbf95d8f0586393f))
84+
* add mapType ([300614f](https://github.com/pinpong/react-native-google-maps-plus/commit/300614f22419f166c2482025f66b761145e75394))
85+
* add mapType ([e32a3f5](https://github.com/pinpong/react-native-google-maps-plus/commit/e32a3f59fc1128b6a4c295d4e5d74d8afa7aa3cd))
86+
* more map features ([796be0b](https://github.com/pinpong/react-native-google-maps-plus/commit/796be0b0976926f72b5d95b1ba5d2406988f4d9e))
87+
* optional marker svg ([d9bd19d](https://github.com/pinpong/react-native-google-maps-plus/commit/d9bd19d72916ec697acc9cecc58219a3df8c5d54))
88+
* optional marker svg ([#30](https://github.com/pinpong/react-native-google-maps-plus/issues/30)) ([5f8852c](https://github.com/pinpong/react-native-google-maps-plus/commit/5f8852c85741b75959f1d1e16240704cca042bb5))
12189

122-
```swift
123-
import GoogleMaps
90+
### 🐛 Bug Fixes
12491

125-
@UIApplicationMain
126-
class AppDelegate: UIResponder, UIApplicationDelegate {
127-
func application(_ application: UIApplication,
128-
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
129-
if let apiKey = Bundle.main.object(forInfoDictionaryKey: "MAPS_API_KEY") as? String {
130-
GMSServices.provideAPIKey(apiKey)
131-
}
132-
return true
133-
}
134-
}
135-
```
92+
* add ios privacy manifest ([175bfdf](https://github.com/pinpong/react-native-google-maps-plus/commit/175bfdf0a932aa7dcc789ac9287eb2e91a9d0bf6))
93+
* add ios privacy manifest ([#31](https://github.com/pinpong/react-native-google-maps-plus/issues/31)) ([acc394e](https://github.com/pinpong/react-native-google-maps-plus/commit/acc394e49ca5bc9eaa5e67942fd2ed645dc2332c))
94+
* dev package version ([ab9b581](https://github.com/pinpong/react-native-google-maps-plus/commit/ab9b581e7f571d09ffbe597cf8834234b43ee3a1))
95+
* dev package version ([1317f23](https://github.com/pinpong/react-native-google-maps-plus/commit/1317f234d832a623c6e5dbce4dafd9154da73857))
96+
* **example:** update Podfile.lock ([0eb9a09](https://github.com/pinpong/react-native-google-maps-plus/commit/0eb9a09bca8b13241b13851c4af0857545284229))
13697

137-
---
98+
### 🔄 Code Refactors
13899

139-
## Usage
100+
* **map:** unify update logic and defaults across Android and iOS ([cdaa01a](https://github.com/pinpong/react-native-google-maps-plus/commit/cdaa01af77ae93f9e9652dd018fe18f0ca6309b4))
101+
* **map:** unify update logic and defaults across Android and iOS ([f15d638](https://github.com/pinpong/react-native-google-maps-plus/commit/f15d6388911943b5abdfd9d5f61e3423af33f064))
102+
* nitrogen-patch.js ([20fbb0d](https://github.com/pinpong/react-native-google-maps-plus/commit/20fbb0d7bea58bd54ade53119dc510d0ce9b18f9))
103+
* optional props ([9faa702](https://github.com/pinpong/react-native-google-maps-plus/commit/9faa7024c2bea0818734cb5831b93c4d360da0bd))
140104

141-
Checkout the example app in the [example](./example) folder.
105+
### 📚 Documentation
142106

143-
# Troubleshooting
107+
* **readme:** update setup instructions ([9f88702](https://github.com/pinpong/react-native-google-maps-plus/commit/9f88702b187fde5c2e3d852f1d0aeeac48f8222b))
144108

145-
## Android
109+
### 🛠️ Other changes
146110

147-
- **API key not found**
148-
Make sure `secrets.properties` exists under `android/` and contains your `MAPS_API_KEY`.
149-
Run `./gradlew clean` and rebuild.
111+
* add dev badge ([c8660b7](https://github.com/pinpong/react-native-google-maps-plus/commit/c8660b75581f447953fba6c9ec440146fcf8f48d))
112+
* merge dev into main ([f851047](https://github.com/pinpong/react-native-google-maps-plus/commit/f8510472835ad5a861341652c6541477df205508))
113+
* update .gitignore ([c15be5e](https://github.com/pinpong/react-native-google-maps-plus/commit/c15be5eb436d05f1f5a25fe7c8249e7c23eea3b2))
114+
* update to react-native 0.82.0 ([31d5ff5](https://github.com/pinpong/react-native-google-maps-plus/commit/31d5ff5157ec8357b9d699d4dcc09bda09e11afb))
115+
* update to react-native 0.82.0 ([8c8e8ae](https://github.com/pinpong/react-native-google-maps-plus/commit/8c8e8ae1c4fcf97e04059d873461f083e4c346cf))
116+
* ## [1.0.2](https://github.com/pinpong/react-native-google-maps-plus/compare/v1.0.1...v1.0.2) (2025-10-02)
150117

151-
## iOS
118+
### 🐛 Bug Fixes
152119

153-
- **`GMSServices must be configured before use`**
154-
Ensure your key is in `Info.plist` and/or provided via `GMSServices.provideAPIKey(...)` in `AppDelegate.swift`.
120+
* build script ([d1f11f2](https://github.com/pinpong/react-native-google-maps-plus/commit/d1f11f237900f929689b72dfb41054dac0790a37))
121+
* build script ([98e194e](https://github.com/pinpong/react-native-google-maps-plus/commit/98e194e61d08af96ce75e156a6f5e3a5378c1b4c))
122+
* name conflict ([faf8d5e](https://github.com/pinpong/react-native-google-maps-plus/commit/faf8d5e7a0f79bfceb8454510e8e5ad3771fdbd2))
123+
* name conflict ([7217c11](https://github.com/pinpong/react-native-google-maps-plus/commit/7217c113bc2e5742bbc4b119eec7672c0b240cba))
124+
* react type ([36e22d5](https://github.com/pinpong/react-native-google-maps-plus/commit/36e22d59f0746ad9759799465eefed8f66a19049))
155125

156-
- **Build fails with `Node.h` import error from SVGKit**
157-
SVGKit uses a header `Node.h` which can conflict with iOS system headers.
158-
You can patch it automatically in your **Podfile** inside the `post_install` hook:
126+
## [1.0.1](https://github.com/pinpong/react-native-google-maps-plus/compare/v1.0.0...v1.0.1) (2025-10-02)
159127

160-
```ruby
161-
post_install do |installer|
162-
react_native_post_install(
163-
installer,
164-
config[:reactNativePath],
165-
:mac_catalyst_enabled => false,
166-
)
167-
# Force iOS 16+ to avoid deployment target warnings
168-
installer.pods_project.targets.each do |target|
169-
target.build_configurations.each do |config|
170-
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.0'
171-
end
172-
end
128+
### 🐛 Bug Fixes
173129

174-
# Patch SVGKit includes to avoid Node.h conflicts
175-
require 'fileutils'
176-
svgkit_path = File.join(installer.sandbox.pod_dir('SVGKit'), 'Source')
177-
Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
178-
FileUtils.chmod("u+w", file)
179-
text = File.read(file)
180-
new_contents = text.gsub('#import "Node.h"', '#import "SVGKit/Node.h"')
181-
File.open(file, 'w') { |f| f.write(new_contents) }
182-
end
183-
end
184-
```
130+
* release ([afbb9cd](https://github.com/pinpong/react-native-google-maps-plus/commit/afbb9cdf0261c35fcd4c6423096fbecaa482f704))
131+
* release ([#18](https://github.com/pinpong/react-native-google-maps-plus/issues/18)) ([b271ccc](https://github.com/pinpong/react-native-google-maps-plus/commit/b271ccc69f9cb3e48c865801bdd104fd6065b557))
185132

186-
After applying this, run:
133+
### 🛠️ Other changes
187134

188-
```sh
189-
cd ios && pod install --repo-update
190-
```
135+
* format ([e67d939](https://github.com/pinpong/react-native-google-maps-plus/commit/e67d939e23a8db82432334c767f780ebe2320d6c))
191136

192-
- **Maps not rendering**
193-
- Check that your API key has **Maps SDK for Android/iOS** enabled in Google Cloud Console.
194-
- Make sure the key is not restricted to wrong bundle IDs or SHA1 fingerprints.
137+
## 1.0.0 (2025-10-02)
195138

196-
## Contributing
139+
### 🐛 Bug Fixes
197140

198-
- [Development workflow](CONTRIBUTING.md#development-workflow)
199-
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
200-
- [Code of conduct](CODE_OF_CONDUCT.md)
141+
* set npm publish to true ([ed7544b](https://github.com/pinpong/react-native-google-maps-plus/commit/ed7544b5c0b39cec418a83842e215253ac7b6eef))
201142

202-
## License
143+
### 📚 Documentation
203144

204-
MIT
145+
* update README.md ([60936c9](https://github.com/pinpong/react-native-google-maps-plus/commit/60936c9351f95e590b779883d161aad1272f4a1b))
146+
* update README.md ([00d3f65](https://github.com/pinpong/react-native-google-maps-plus/commit/00d3f656679415a8105fff2ae52fd0bd3106e472))
147+
* update README.md ([7354d38](https://github.com/pinpong/react-native-google-maps-plus/commit/7354d3822298b75ad28024f5488cc25e70891b9c))
148+
* update README.md ([bb2bf47](https://github.com/pinpong/react-native-google-maps-plus/commit/bb2bf47d7b273e1dd02a44425713ebe7c9bfb612))
205149

206-
---
150+
### 🛠️ Other changes
207151

208-
Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
152+
* initial commit ([d240a87](https://github.com/pinpong/react-native-google-maps-plus/commit/d240a870fa08e5a01ef8b3e981f7e78c7e113fef))

README.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,10 @@ Checkout the example app in the [example](./example) folder.
103103
- **`GMSServices must be configured before use`**
104104
Ensure your key is in `Info.plist` and/or provided via `GMSServices.provideAPIKey(...)` in `AppDelegate.swift`.
105105

106-
- **Build fails with `Node.h` import error from SVGKit**
107-
SVGKit uses a header `Node.h` which can conflict with iOS system headers.
108-
You can patch it automatically in your **Podfile** inside the `post_install` hook:
106+
- **Build fails with `Node.h`, `CSSValue.h`, or `SVGLength.h` import errors from SVGKit**
107+
SVGKit includes headers (`Node.h`, `CSSValue.h`, `SVGLength.h`) that can conflict with
108+
iOS system headers and React Native Reanimated’s internal types.
109+
You can patch them automatically in your **Podfile** inside the `post_install`
109110

110111
```ruby
111112
post_install do |installer|
@@ -121,14 +122,35 @@ Checkout the example app in the [example](./example) folder.
121122
end
122123
end
123124

124-
# Patch SVGKit includes to avoid Node.h conflicts
125+
# --- SVGKit Patch ---
125126
require 'fileutils'
126127
svgkit_path = File.join(installer.sandbox.pod_dir('SVGKit'), 'Source')
128+
129+
# node fix
127130
Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
128131
FileUtils.chmod("u+w", file)
129132
text = File.read(file)
130133
new_contents = text.gsub('#import "Node.h"', '#import "SVGKit/Node.h"')
131134
File.open(file, 'w') { |f| f.write(new_contents) }
135+
# puts "Patched Node import in: #{file}"
136+
end
137+
138+
# import CSSValue.h
139+
Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
140+
FileUtils.chmod("u+w", file)
141+
text = File.read(file)
142+
new_contents = text.gsub('#import "CSSValue.h"', '#import "SVGKit/CSSValue.h"')
143+
File.open(file, 'w') { |f| f.write(new_contents) }
144+
# puts "Patched CSSValue import in: #{file}"
145+
end
146+
147+
# import SVGLength.h
148+
Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
149+
FileUtils.chmod("u+w", file)
150+
text = File.read(file)
151+
new_contents = text.gsub('#import "SVGLength.h"', '#import "SVGKit/SVGLength.h"')
152+
File.open(file, 'w') { |f| f.write(new_contents) }
153+
# puts "Patched SVGLength import in: #{file}"
132154
end
133155
end
134156
```

android/build.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ apply plugin: "kotlin-android"
2525
apply from: '../nitrogen/generated/android/RNGoogleMapsPlus+autolinking.gradle'
2626
apply from: "./fix-prefab.gradle"
2727

28-
apply plugin: "com.facebook.react"
28+
if (rootProject.name != "rngooglemapsplus.example") {
29+
apply plugin: "com.facebook.react"
30+
} else {
31+
println("\u001B[33m⚠️ Skipping React Native Gradle plugin in library (example build detected)\u001B[0m")
32+
}
2933

3034
def getExtOrIntegerDefault(name) {
3135
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["RNGoogleMapsPlus_" + name]).toInteger()

0 commit comments

Comments
 (0)