Conversation
📝 WalkthroughWalkthroughThis PR adds complete iOS platform support to the ChipTextField multiplatform library and sample application. It enables iOS targets across multiple Gradle build configurations, provides iOS-specific Kotlin implementations for core platform abstractions (text styling and frame timing), and includes a fully configured Xcode iOS app with SwiftUI integration bridging to Compose UI. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Tip Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@sample/iosApp/iosApp.xcodeproj/project.pbxproj`:
- Around line 315-321: OTHER_LDFLAGS currently includes malformed entries that
embed literal newlines and duplicate the "-framework Shared" flag (e.g.,
"Shared\n$(inherited)" and "Shared\n"), so remove the embedded "\n" and the
duplicate framework/linker tokens and ensure $(inherited) is a standalone entry;
specifically, in the OTHER_LDFLAGS array replace any entries like
"Shared\n$(inherited)" or "Shared\n" with a single "-framework" followed by
"Shared" (only once) and keep "$(inherited)" as its own element so the final
OTHER_LDFLAGS contains "$(inherited)", "-framework", "Shared" (no embedded
newlines and no duplicates) for both Debug and Release target configs.
- Around line 305-308: The FRAMEWORK_SEARCH_PATHS entries contain quoted strings
with trailing "\n" characters (e.g. "\"$(inherited)\n\"" and the
"$(SRCROOT)/../shared/..." entry) which become literal newlines in the pbxproj
and can break path resolution; remove the trailing "\n" from these quoted values
in the FRAMEWORK_SEARCH_PATHS arrays for both Debug and Release target
configurations so the entries read "\"$(inherited)\"" and the SRCROOT path
without the "\n", ensuring all FRAMEWORK_SEARCH_PATHS occurrences (including the
other block around lines 339-342) are updated consistently.
🧹 Nitpick comments (1)
sample/iosApp/iosApp/Info.plist (1)
32-35: Consider updatingUIRequiredDeviceCapabilitiestoarm64.The
armv7capability is outdated — Compose Multiplatform for iOS requires iOS 15+, which only runs on arm64 devices. While this won't cause a build or runtime failure (arm64 devices are a superset of armv7), updating toarm64more accurately reflects the actual hardware requirement and prevents the app from appearing compatible with very old 32-bit devices on the App Store.Suggested change
<key>UIRequiredDeviceCapabilities</key> <array> - <string>armv7</string> + <string>arm64</string> </array>
| FRAMEWORK_SEARCH_PATHS = ( | ||
| "$(inherited)\n", | ||
| "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n", | ||
| ); |
There was a problem hiding this comment.
FRAMEWORK_SEARCH_PATHS entries have trailing \n inside the quoted strings.
In both Debug and Release target configs, the path entries include a trailing \n (e.g., "$(inherited)\n" and the $(SRCROOT)/... path). In the pbxproj format these become literal characters appended to the path, which could interfere with path resolution.
🔧 Proposed fix (apply to both Debug and Release target configs)
FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)\n",
- "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n",
+ "$(inherited)",
+ "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);Also applies to: 339-342
🤖 Prompt for AI Agents
In `@sample/iosApp/iosApp.xcodeproj/project.pbxproj` around lines 305 - 308, The
FRAMEWORK_SEARCH_PATHS entries contain quoted strings with trailing "\n"
characters (e.g. "\"$(inherited)\n\"" and the "$(SRCROOT)/../shared/..." entry)
which become literal newlines in the pbxproj and can break path resolution;
remove the trailing "\n" from these quoted values in the FRAMEWORK_SEARCH_PATHS
arrays for both Debug and Release target configurations so the entries read
"\"$(inherited)\"" and the SRCROOT path without the "\n", ensuring all
FRAMEWORK_SEARCH_PATHS occurrences (including the other block around lines
339-342) are updated consistently.
| OTHER_LDFLAGS = ( | ||
| "$(inherited)", | ||
| "-framework", | ||
| "Shared\n$(inherited)", | ||
| "-framework", | ||
| "Shared\n", | ||
| ); |
There was a problem hiding this comment.
OTHER_LDFLAGS contains duplicate framework linkage and embedded newlines.
Both Debug and Release target configs link -framework Shared twice, and the entries embed \n and a misplaced $(inherited) inside the framework name string (e.g., "Shared\n$(inherited)"). This produces malformed linker arguments — $(inherited) is already listed separately, and the trailing \n characters within the string values will be interpreted literally.
🔧 Proposed fix (apply to both Debug and Release target configs)
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
- "Shared\n$(inherited)",
- "-framework",
- "Shared\n",
+ Shared,
);Also applies to: 349-355
🤖 Prompt for AI Agents
In `@sample/iosApp/iosApp.xcodeproj/project.pbxproj` around lines 315 - 321,
OTHER_LDFLAGS currently includes malformed entries that embed literal newlines
and duplicate the "-framework Shared" flag (e.g., "Shared\n$(inherited)" and
"Shared\n"), so remove the embedded "\n" and the duplicate framework/linker
tokens and ensure $(inherited) is a standalone entry; specifically, in the
OTHER_LDFLAGS array replace any entries like "Shared\n$(inherited)" or
"Shared\n" with a single "-framework" followed by "Shared" (only once) and keep
"$(inherited)" as its own element so the final OTHER_LDFLAGS contains
"$(inherited)", "-framework", "Shared" (no embedded newlines and no duplicates)
for both Debug and Release target configs.
Summary by CodeRabbit