Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,17 +136,9 @@ runs:
curl --location --output xcodegen.zip https://github.com/yonaskolb/XcodeGen/releases/download/${VERSION}/xcodegen.zip
unzip -q xcodegen.zip
popd
./gradlew :shared:generateDummyFramework
cd iosApp
${OUT}/xcodegen/bin/xcodegen generate
rm -r ${OUT}
- name: Cache CocoaPods dependencies
if: steps.settings.outputs.xcode == 'true'
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: iosApp/Pods
key: cocoapods-${{ hashFiles('iosApp/Podfile.lock') }}
restore-keys: cocoapods-
- name: Install SwiftLint and xcbeautify
if: steps.settings.outputs.xcode == 'true'
shell: bash
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/build-ios.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,6 @@ jobs:
aws secretsmanager get-secret-value --secret-id mobile-app-ios-codesigning-p12 --output json | jq -r '.SecretBinary' | base64 --decode > "secrets/${MOBILE_APP_IOS_CODESIGNING_ID}.p12"
popd
bundle exec fastlane ios cert_load cert_id:"${MOBILE_APP_IOS_CODESIGNING_ID}"
- name: Install CocoaPods dependencies
run: bundle exec ./gradlew :shared:podInstallSyntheticIos
- name: Add build environment variables
run: |
{
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/test-ios.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,6 @@ jobs:
if: ${{ !inputs.skip-everything }}
with:
for: ios-test
- name: Install CocoaPods dependencies
if: ${{ !inputs.skip-everything }}
run: |
./gradlew :shared:generateDummyFramework
pushd iosApp
bundle exec pod install
popd
bundle exec ./gradlew :shared:podInstallSyntheticIos
- name: shared checks & unit tests
if: ${{ !inputs.skip-everything }}
run: ./gradlew shared:iosSimulatorArm64Test
Expand Down
4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ fastlane/test_output

/component-graphs
/iosApp/secrets/*
/iosApp/Pods/*
/androidApp/src/main/res/values/secrets*.xml
/iosApp/iosApp.xcodeproj
/iosApp/iosApp.xcworkspace/*
!/iosApp/iosApp.xcworkspace/xcshareddata
!/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
1 change: 0 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ AllCops:
- '**/*.rb'
- 'Gemfile'
- 'fastlane/*file'
- 'iosApp/Podfile'
NewCops: enable

Metrics/BlockLength:
Expand Down
2 changes: 0 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

source 'https://rubygems.org'

gem 'cocoapods'
gem 'cyclonedx-cocoapods'
gem 'fastlane'
gem 'fastlane-plugin-sentry'
gem 'fastlane-plugin-versioning_android'
Expand Down
90 changes: 0 additions & 90 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,8 @@ GEM
specs:
CFPropertyList (3.0.8)
abbrev (0.1.2)
activesupport (7.2.2.2)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.9.0)
public_suffix (>= 2.0.2, < 8.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
artifactory (3.0.17)
ast (2.4.3)
atomos (0.1.3)
Expand Down Expand Up @@ -47,63 +32,17 @@ GEM
benchmark (0.5.0)
bigdecimal (4.1.2)
claide (1.1.0)
cocoapods (1.16.2)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.16.2)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.6.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.27.0, < 2.0)
cocoapods-core (1.16.2)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (2.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
cocoapods-trunk (1.6.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
concurrent-ruby (1.3.5)
connection_pool (2.5.4)
csv (3.3.5)
cyclonedx-cocoapods (2.0.1)
cocoapods (>= 1.10.1, < 2.0)
nokogiri (>= 1.11.2, < 2.0)
declarative (0.0.20)
digest-crc (0.7.0)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
drb (2.2.3)
emoji_regex (3.2.3)
escape (0.0.4)
ethon (0.17.0)
ffi (>= 1.15.0)
excon (0.112.0)
faraday (1.10.5)
faraday-em_http (~> 1.0)
Expand Down Expand Up @@ -189,11 +128,6 @@ GEM
os (~> 1.1, >= 1.1.4)
fastlane-plugin-versioning_android (0.1.1)
fastlane-sirp (1.1.0)
ffi (1.17.4)
ffi (1.17.4-arm64-darwin)
ffi (1.17.4-x86_64-darwin)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.102.0)
google-apis-core (>= 0.15.0, < 2.a)
Expand Down Expand Up @@ -241,8 +175,6 @@ GEM
domain_name (~> 0.5)
httpclient (2.9.0)
mutex_m
i18n (1.14.7)
concurrent-ruby (~> 1.0)
jmespath (1.6.2)
json (2.19.8)
jwt (3.2.0)
Expand All @@ -252,26 +184,12 @@ GEM
logger (1.7.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
mini_portile2 (2.8.9)
minitest (6.0.3)
drb (~> 2.0)
prism (~> 1.5)
molinillo (0.8.0)
multi_json (1.21.1)
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
nap (1.1.0)
naturally (2.3.0)
netrc (0.11.0)
nkf (0.2.0)
nokogiri (1.19.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.19.2-arm64-darwin)
racc (~> 1.4)
nokogiri (1.19.2-x86_64-darwin)
racc (~> 1.4)
optparse (0.8.1)
os (1.1.4)
ostruct (0.6.3)
Expand Down Expand Up @@ -308,11 +226,9 @@ GEM
rubocop-ast (1.49.1)
parser (>= 3.3.7.2)
prism (~> 1.7)
ruby-macho (2.5.1)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
rubyzip (2.4.1)
securerandom (0.4.1)
security (0.1.5)
signet (0.22.0)
addressable (~> 2.8)
Expand All @@ -329,10 +245,6 @@ GEM
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
unicode-display_width (2.6.0)
word_wrap (1.0.0)
Expand All @@ -354,8 +266,6 @@ PLATFORMS
x86_64-darwin-23

DEPENDENCIES
cocoapods
cyclonedx-cocoapods
fastlane
fastlane-plugin-sentry
fastlane-plugin-versioning_android
Expand Down
12 changes: 4 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ The recommendation for KMM projects is to use Android Studio for editing & runni
#### Gotchas

- Be sure to install the Android SDK Command-line Tools via Android Studio > Settings Android SDK > SDK Tool Tabs > Android SDK Command Line Tools.
- If you're seeing the error "undefined method 'map' for nil:NilClass" when running pod installs locally, you likely need to run `bundle exec gem uninstall ffi` then `bundle install` to get a cocoapods requirement to be installed properly on M1 Macs.
- If an Xcode build fails because of CocoaPods, try `bin/fix-cocoapods.sh`.
- If some piece of BOM generation fails in Xcode, try quitting Xcode and then running `open /Applications/Xcode.app` from a terminal with a good `PATH`.
- If iOS asset conversion fails in Android Studio, try quitting Android Studio and then running `open /Applications/Android\ Studio.app` from a terminal with a good `PATH`.
- If some piece of BOM generation still fails in Xcode even when Xcode was launched with a good `PATH`, try running `./gradlew :shared:bomCodegenIos` manually from a terminal with a good `PATH`.
Expand Down Expand Up @@ -78,14 +76,12 @@ section of the Inject readme. The build setting configurations are already set u
- Select `open project` from the top bar menu and select the `iosApp` directory
- Once you launch the app you should see `💉 InjectionIII connected` in the logs

The shared library dependency is managed using Cocoapods. To install the dependency and build the
The shared library dependency is managed using Xcode build scripts. To install the dependency and build the
ios app:

- Run a gradle sync of the project from Android Studio, or you may run
`./gradlew :shared:generateDummyFramework` from the root directory
- `bundle install` to install cocoapods and fastlane
- `bin/generate-xcodeproj.sh` to generate the Xcode project and then integrate CocoaPods with it
- Open the project from `/iosApp/iosApp.xcworkspace` in Xcode (not `iosApp.xcodeproj`).
- Run a gradle sync of the project from Android Studio
- `bin/generate-xcodeproj.sh` to generate the Xcode project
- Open the project from `/iosApp/iosApp.xcodeproj` in Xcode.
- Populate any configuration needed in your the .envrc file. These will be read by a build phase
script and set as info.plist values so that they can be read by the application.

Expand Down
3 changes: 0 additions & 3 deletions bin/diff-xcodeproj.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ ln -s "$REAL_REPO"/Gemfile.lock "$FAKE_ROOT"
ln -s "$REAL_REPO"/iosApp/* "$FAKE_ROOT"/iosApp
ln -s "$REAL_REPO"/iosApp/.swift* "$FAKE_ROOT"/iosApp
rm "$FAKE_ROOT"/iosApp/iosApp.xcodeproj
rm "$FAKE_ROOT"/iosApp/iosApp.xcworkspace
rm "$FAKE_ROOT"/iosApp/Pods
ln -s "$REAL_REPO"/shared "$FAKE_ROOT"
pushd "$FAKE_ROOT"/iosApp
xcodegen generate --quiet
Expand All @@ -31,6 +29,5 @@ else
ERR=0
fi
popd
rm -rf "$FAKE_ROOT"/iosApp/Pods
rm -r "$FAKE_ROOT"
exit $ERR
14 changes: 0 additions & 14 deletions bin/filter-xcodeproj-diff.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ def replace_leaf_keys!
def ignore_leaf_noise!(path)
ignore_added_file_type!(path)
ignore_object_version!(path)
ignore_pods_name!(path)
ignore_pods_frameworks!(path)
end

def ignore_added_file_type!(path)
Expand All @@ -46,18 +44,6 @@ def ignore_object_version!(path)
replace({})
end

def ignore_pods_name!(path)
if (path == '.rootObject.mainGroup.children.Pods.name') && self['dirty'].nil? && (self['generated'] == 'Pods')
replace({})
end
end

def ignore_pods_frameworks!(path)
return unless path.include?('Embed Pods Frameworks') && self['dirty'] == [] && self['generated'].nil?

replace({})
end

def crawl_recursive!(path)
keys.each do |k|
next unless self[k].is_a? Hash
Expand Down
12 changes: 0 additions & 12 deletions bin/fix-cocoapods.sh

This file was deleted.

2 changes: 1 addition & 1 deletion bin/generate-xcodeproj.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env zsh
set -e

# Generates iosApp.xcodeproj and iosApp.xcworkspace based on project.yml.
# Generates iosApp.xcodeproj based on project.yml.
# Use --force to skip the xcodegen cache (useful if overwriting the project).

use_cache_flag="--use-cache"
Expand Down
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ plugins {
alias(libs.plugins.androidApplication).apply(false)
alias(libs.plugins.androidLibrary).apply(false)
alias(libs.plugins.cycloneDx)
alias(libs.plugins.kotlinCocoapods).apply(false)
alias(libs.plugins.kotlinMultiplatform).apply(false)
alias(libs.plugins.spotless)
alias(libs.plugins.testLogger)
Expand Down
4 changes: 2 additions & 2 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ platform :ios do
desc 'Run tests'
lane :test do |options|
run_tests(
workspace: 'iosApp/iosApp.xcworkspace',
project: 'iosApp/iosApp.xcodeproj',
scheme: 'Staging',
device: 'iPhone 16 (26.2)',
testplan: 'iosAppRetries',
Expand All @@ -233,7 +233,7 @@ platform :ios do
xcodeproj: 'iosApp/iosApp.xcodeproj'
)
build_app(
workspace: 'iosApp/iosApp.xcworkspace',
project: 'iosApp/iosApp.xcodeproj',
scheme: options[:scheme],
output_directory: 'iosApp/build',
output_name: 'iosApp.ipa',
Expand Down
1 change: 0 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
cycloneDx = { id = "org.cyclonedx.bom", version.ref = "cyclonedx" }
kotlinCocoapods = { id = "org.jetbrains.kotlin.native.cocoapods", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
mokkery = { id = "dev.mokkery", version.ref = "mokkery" }
sentry-android = { id = "io.sentry.android.gradle", version.ref = "sentry-android-gradle" }
Expand Down
2 changes: 0 additions & 2 deletions iosApp/.swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ disabled_rules:
# SwiftFormat disagrees with SwiftLint about some formatting choices
- statement_position
- trailing_comma
excluded:
- Pods

identifier_name:
excluded:
Expand Down
14 changes: 0 additions & 14 deletions iosApp/Podfile

This file was deleted.

Loading
Loading