Skip to content

Commit 14f7a1f

Browse files
fummicc1claude
andauthored
Update Firebase version (#66)
* Update Firebase version and add contains filter * Firebase iOS SDKを12.6.0に更新 - Package.swiftの依存関係を11.0.0から12.0.0に変更 - Package.resolvedを更新して依存パッケージを最新バージョンに解決 - 主要な更新: - GoogleUtilities: 7.13.3 → 8.1.0 - gtm-session-fetcher: 3.4.1 → 5.0.0 - swift-protobuf: 1.26.0 → 1.33.3 - grpc-binary: 1.62.2 → 1.69.1 注: Swift 6.2.1カスタムツールチェインでは非互換性があるため、 xcrun swift buildでXcodeのデフォルトツールチェインを使用する必要があります。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * GitHub Actionsのアクションを最新バージョンに更新 非推奨となったactions/cache@v2の警告を解決するため、 GitHub Actionsで使用しているアクションを最新バージョンに更新。 変更内容: - practical_examples.yml: - actions/checkout: v2 → v4 - actions/cache: v2 → v4 - sources.yml: - actions/checkout: v3 → v4 - actions/setup-java: v3 → v4 これにより、2024年12月5日に発表されたactions/cache v1/v2の 廃止に関する警告が解決されます。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Firebase Emulatorの管理をローカル・CI両方で改善 ローカル開発とCI環境の両方で使用できる統合スクリプトを作成し、 `firebase emulators:exec`を使用したシンプルで信頼性の高い実装に移行。 変更内容: - firebase/run_with_emulator.sh: 新しい統合スクリプトを追加 - Firebase CLIの自動インストール - エミュレータの自動セットアップと起動 - コマンド実行後の自動クリーンアップ - データの永続化機能(import/export) - .github/workflows/sources.yml: 新しいスクリプトを使用 - 手動のPID管理を廃止 - 待機スクリプトが不要に - killプロセスが不要に - firebase/README.md: 使い方のドキュメントを追加 - ローカル開発での使用方法 - スクリプトの機能説明 - メリットの解説 - Examples: Package.resolvedをFirebase 12.6.0に更新 メリット: - ローカル開発とCIで同じテスト環境を保証 - エミュレータのライフサイクル管理が完全自動化 - 異常終了時も確実にクリーンアップ - コードがシンプルで保守性が向上 - 開発者がすぐに使えるドキュメント完備 使い方: cd firebase ./run_with_emulator.sh "swift build && swift test" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * test: set FirebaseOption apiKey * CI: iPhone 15とiPhone 16の両方でテストを実行 practical_examples.ymlをマトリックスビルドに変更し、 複数のiOSバージョンでの互換性を確保。 変更内容: - マトリックスビルド戦略を追加 - iPhone 15 (iOS 17.5) - iPhone 16 (iOS 18.2) - destination指定にOSバージョンを追加 - ビルドステップ名を動的に生成 メリット: - iOS 17とiOS 18の両方での動作確認 - より広範なデバイスサポートの保証 - 将来的な互換性問題の早期発見 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Firebase Emulatorスクリプトのworking directory問題を修正 firebase.jsonの場所を考慮してスクリプトを修正。 問題: - firebase emulators:execがfirebase.jsonを見つけられない - cd ..でプロジェクトルートに移動していたため 修正内容: - firebaseディレクトリから実行を維持 - コマンド内で"cd .. && command"を実行 - import/exportパスを相対パスに修正(./firebase/data → ./data) これにより、firebase.jsonを正しく読み込みつつ、 コマンドはプロジェクトルートで実行される。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * CI: Firebase Emulator用にJavaバージョンを21に更新 Firebase CLI 15.0.0以降ではJava 21以上が必要となりました。 GitHub ActionsのJavaバージョンを17から21に更新しました。 Changes: - Java 17 → Java 21 in GitHub Actions - README.mdに要件セクションを追加 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Example app's import error * fix: CombineベースのAPIを新しいSwift Concurrency APIに置き換え 削除されたCombine関係のAPI(FirestoreModelTypeAction, SnapshotInputParameter, Message.multiple)を、 新しいSwift ConcurrencyベースのAPIに置き換えました。 Changes: - import Combineを削除 - cancellablesをlistenerTaskに置き換え - FirestoreClient.listen()を使用してAsyncThrowingStreamで監視 - deinitでタスクをキャンセル 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent e028281 commit 14f7a1f

25 files changed

Lines changed: 483 additions & 456 deletions

File tree

.github/workflows/practical_examples.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,33 @@ jobs:
1717
test:
1818
name: "Test BoardApplication"
1919
runs-on: macos-14
20+
strategy:
21+
matrix:
22+
device:
23+
- { name: "iPhone 15", os: "17.5" }
24+
- { name: "iPhone 16", os: "18.2" }
2025
defaults:
2126
run:
2227
working-directory: Examples/Practical/BoardApplication
2328
shell: bash
2429
steps:
25-
- uses: actions/checkout@v2
30+
- uses: actions/checkout@v4
2631
- uses: maxim-lobanov/setup-xcode@v1
2732
with:
2833
xcode-version: latest-stable
2934
- name: Cache SwiftPM
30-
uses: actions/cache@v2
35+
uses: actions/cache@v4
3136
with:
3237
path: SourcePackages
3338
key: ${{ runner.os }}-spm-${{ hashFiles('*.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
3439
restore-keys: ${{ runner.os }}-spm-
3540
- name: Install xcpretty
3641
run: bundle install
3742
working-directory: ./
38-
- name: Build
43+
- name: Build on ${{ matrix.device.name }} (iOS ${{ matrix.device.os }})
3944
run: |
4045
set -o pipefail && \
4146
xcodebuild -scheme BoardApplication \
42-
build -destination "name=iPhone 15" \
47+
build -destination "platform=iOS Simulator,name=${{ matrix.device.name }},OS=${{ matrix.device.os }}" \
4348
-clonedSourcePackagesDirPath SourcePackages \
4449
| bundle exec xcpretty

.github/workflows/sources.yml

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,19 @@ jobs:
1414
name: "Build Sources"
1515
runs-on: macos-14
1616
steps:
17-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1818
- uses: maxim-lobanov/setup-xcode@v1
1919
with:
2020
xcode-version: latest-stable
21-
- name: Install Java17
22-
uses: actions/setup-java@v3
21+
- name: Install Java21
22+
uses: actions/setup-java@v4
2323
with:
2424
distribution: "temurin"
25-
java-version: "17"
25+
java-version: "21"
2626
- name: Install xcpretty
2727
run: bundle install
28-
- name: Setup Firebase Emulator
28+
- name: Build and Test with Firebase Emulators
2929
working-directory: ./firebase
30-
run: ./emulator_setup.sh &
30+
run: ./run_with_emulator.sh "set -o pipefail && swift build && swift test"
3131
env:
3232
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
33-
- name: Wait firebase_emulator_setup
34-
working-directory: ./firebase
35-
run: ./wait_firebase_emulator_setup.sh
36-
- name: Build and Test
37-
run: |
38-
set -o pipefail && \
39-
swift build && \
40-
swift test
41-
- name: Kill firebase_emulator process
42-
run: kill `cat /tmp/firebase_emulator_pid.pid` &>/dev/null

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,7 @@ ui-debug.log
9898
# fvm
9999
.fvm/
100100

101-
.index-build/
101+
.index-build/
102+
103+
# Claude
104+
.claude/settings.local.json
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"configurations" : [
3+
{
4+
"id" : "D325B07B-16DE-4CCE-9A75-B696B8133B45",
5+
"name" : "Configuration 1",
6+
"options" : {
7+
8+
}
9+
}
10+
],
11+
"defaultOptions" : {
12+
13+
},
14+
"testTargets" : [
15+
{
16+
"target" : {
17+
"containerPath" : "container:",
18+
"identifier" : "EasyFirebaseStorageTests",
19+
"name" : "EasyFirebaseStorageTests"
20+
}
21+
},
22+
{
23+
"target" : {
24+
"containerPath" : "container:",
25+
"identifier" : "EasyFirebaseFirestoreTests",
26+
"name" : "EasyFirebaseFirestoreTests"
27+
}
28+
}
29+
],
30+
"version" : 1
31+
}

.swiftpm/xcode/xcshareddata/xcschemes/EasyFirebaseSwiftStorage.xcscheme renamed to .swiftpm/xcode/xcshareddata/xcschemes/EasyFirebase-Package.xcscheme

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1320"
4-
version = "1.3">
3+
LastUpgradeVersion = "1610"
4+
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"
7-
buildImplicitDependencies = "YES">
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
89
<BuildActionEntries>
910
<BuildActionEntry
1011
buildForTesting = "YES"
@@ -14,9 +15,9 @@
1415
buildForAnalyzing = "YES">
1516
<BuildableReference
1617
BuildableIdentifier = "primary"
17-
BlueprintIdentifier = "EasyFirebaseSwiftStorage"
18-
BuildableName = "EasyFirebaseSwiftStorage"
19-
BlueprintName = "EasyFirebaseSwiftStorage"
18+
BlueprintIdentifier = "EasyFirebaseAuth"
19+
BuildableName = "EasyFirebaseAuth"
20+
BlueprintName = "EasyFirebaseAuth"
2021
ReferencedContainer = "container:">
2122
</BuildableReference>
2223
</BuildActionEntry>
@@ -28,9 +29,23 @@
2829
buildForAnalyzing = "YES">
2930
<BuildableReference
3031
BuildableIdentifier = "primary"
31-
BlueprintIdentifier = "StorageTests"
32-
BuildableName = "StorageTests"
33-
BlueprintName = "StorageTests"
32+
BlueprintIdentifier = "EasyFirebaseFirestore"
33+
BuildableName = "EasyFirebaseFirestore"
34+
BlueprintName = "EasyFirebaseFirestore"
35+
ReferencedContainer = "container:">
36+
</BuildableReference>
37+
</BuildActionEntry>
38+
<BuildActionEntry
39+
buildForTesting = "YES"
40+
buildForRunning = "YES"
41+
buildForProfiling = "YES"
42+
buildForArchiving = "YES"
43+
buildForAnalyzing = "YES">
44+
<BuildableReference
45+
BuildableIdentifier = "primary"
46+
BlueprintIdentifier = "EasyFirebaseStorage"
47+
BuildableName = "EasyFirebaseStorage"
48+
BlueprintName = "EasyFirebaseStorage"
3449
ReferencedContainer = "container:">
3550
</BuildableReference>
3651
</BuildActionEntry>
@@ -41,14 +56,30 @@
4156
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
4257
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
4358
shouldUseLaunchSchemeArgsEnv = "YES">
59+
<TestPlans>
60+
<TestPlanReference
61+
reference = "container:.swiftpm/EasyFirebase-Package.xctestplan"
62+
default = "YES">
63+
</TestPlanReference>
64+
</TestPlans>
4465
<Testables>
4566
<TestableReference
4667
skipped = "NO">
4768
<BuildableReference
4869
BuildableIdentifier = "primary"
49-
BlueprintIdentifier = "StorageTests"
50-
BuildableName = "StorageTests"
51-
BlueprintName = "StorageTests"
70+
BlueprintIdentifier = "EasyFirebaseFirestoreTests"
71+
BuildableName = "EasyFirebaseFirestoreTests"
72+
BlueprintName = "EasyFirebaseFirestoreTests"
73+
ReferencedContainer = "container:">
74+
</BuildableReference>
75+
</TestableReference>
76+
<TestableReference
77+
skipped = "NO">
78+
<BuildableReference
79+
BuildableIdentifier = "primary"
80+
BlueprintIdentifier = "EasyFirebaseStorageTests"
81+
BuildableName = "EasyFirebaseStorageTests"
82+
BlueprintName = "EasyFirebaseStorageTests"
5283
ReferencedContainer = "container:">
5384
</BuildableReference>
5485
</TestableReference>
@@ -74,9 +105,9 @@
74105
<MacroExpansion>
75106
<BuildableReference
76107
BuildableIdentifier = "primary"
77-
BlueprintIdentifier = "EasyFirebaseSwiftStorage"
78-
BuildableName = "EasyFirebaseSwiftStorage"
79-
BlueprintName = "EasyFirebaseSwiftStorage"
108+
BlueprintIdentifier = "EasyFirebaseAuth"
109+
BuildableName = "EasyFirebaseAuth"
110+
BlueprintName = "EasyFirebaseAuth"
80111
ReferencedContainer = "container:">
81112
</BuildableReference>
82113
</MacroExpansion>

.swiftpm/xcode/xcshareddata/xcschemes/EasyFirebaseSwiftAuth.xcscheme renamed to .swiftpm/xcode/xcshareddata/xcschemes/EasyFirebaseAuth.xcscheme

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1320"
4-
version = "1.3">
3+
LastUpgradeVersion = "1610"
4+
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"
7-
buildImplicitDependencies = "YES">
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
89
<BuildActionEntries>
910
<BuildActionEntry
1011
buildForTesting = "YES"
@@ -14,9 +15,9 @@
1415
buildForAnalyzing = "YES">
1516
<BuildableReference
1617
BuildableIdentifier = "primary"
17-
BlueprintIdentifier = "EasyFirebaseSwiftAuth"
18-
BuildableName = "EasyFirebaseSwiftAuth"
19-
BlueprintName = "EasyFirebaseSwiftAuth"
18+
BlueprintIdentifier = "EasyFirebaseAuth"
19+
BuildableName = "EasyFirebaseAuth"
20+
BlueprintName = "EasyFirebaseAuth"
2021
ReferencedContainer = "container:">
2122
</BuildableReference>
2223
</BuildActionEntry>
@@ -26,9 +27,8 @@
2627
buildConfiguration = "Debug"
2728
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2829
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
shouldUseLaunchSchemeArgsEnv = "YES">
30-
<Testables>
31-
</Testables>
30+
shouldUseLaunchSchemeArgsEnv = "YES"
31+
shouldAutocreateTestPlan = "YES">
3232
</TestAction>
3333
<LaunchAction
3434
buildConfiguration = "Debug"
@@ -50,9 +50,9 @@
5050
<MacroExpansion>
5151
<BuildableReference
5252
BuildableIdentifier = "primary"
53-
BlueprintIdentifier = "EasyFirebaseSwiftAuth"
54-
BuildableName = "EasyFirebaseSwiftAuth"
55-
BlueprintName = "EasyFirebaseSwiftAuth"
53+
BlueprintIdentifier = "EasyFirebaseAuth"
54+
BuildableName = "EasyFirebaseAuth"
55+
BlueprintName = "EasyFirebaseAuth"
5656
ReferencedContainer = "container:">
5757
</BuildableReference>
5858
</MacroExpansion>

.swiftpm/xcode/xcshareddata/xcschemes/EasyFirebaseSwiftFirestore.xcscheme renamed to .swiftpm/xcode/xcshareddata/xcschemes/EasyFirebaseFirestore.xcscheme

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1320"
4-
version = "1.3">
3+
LastUpgradeVersion = "1610"
4+
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"
7-
buildImplicitDependencies = "YES">
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
89
<BuildActionEntries>
910
<BuildActionEntry
1011
buildForTesting = "YES"
@@ -14,9 +15,9 @@
1415
buildForAnalyzing = "YES">
1516
<BuildableReference
1617
BuildableIdentifier = "primary"
17-
BlueprintIdentifier = "EasyFirebaseSwiftFirestore"
18-
BuildableName = "EasyFirebaseSwiftFirestore"
19-
BlueprintName = "EasyFirebaseSwiftFirestore"
18+
BlueprintIdentifier = "EasyFirebaseFirestore"
19+
BuildableName = "EasyFirebaseFirestore"
20+
BlueprintName = "EasyFirebaseFirestore"
2021
ReferencedContainer = "container:">
2122
</BuildableReference>
2223
</BuildActionEntry>
@@ -26,19 +27,8 @@
2627
buildConfiguration = "Debug"
2728
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2829
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
shouldUseLaunchSchemeArgsEnv = "YES">
30-
<Testables>
31-
<TestableReference
32-
skipped = "NO">
33-
<BuildableReference
34-
BuildableIdentifier = "primary"
35-
BlueprintIdentifier = "FirestoreTests"
36-
BuildableName = "FirestoreTests"
37-
BlueprintName = "FirestoreTests"
38-
ReferencedContainer = "container:">
39-
</BuildableReference>
40-
</TestableReference>
41-
</Testables>
30+
shouldUseLaunchSchemeArgsEnv = "YES"
31+
shouldAutocreateTestPlan = "YES">
4232
</TestAction>
4333
<LaunchAction
4434
buildConfiguration = "Debug"
@@ -60,9 +50,9 @@
6050
<MacroExpansion>
6151
<BuildableReference
6252
BuildableIdentifier = "primary"
63-
BlueprintIdentifier = "EasyFirebaseSwiftFirestore"
64-
BuildableName = "EasyFirebaseSwiftFirestore"
65-
BlueprintName = "EasyFirebaseSwiftFirestore"
53+
BlueprintIdentifier = "EasyFirebaseFirestore"
54+
BuildableName = "EasyFirebaseFirestore"
55+
BlueprintName = "EasyFirebaseFirestore"
6656
ReferencedContainer = "container:">
6757
</BuildableReference>
6858
</MacroExpansion>

0 commit comments

Comments
 (0)