Skip to content

Remove Plist #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
May 2, 2025
Merged

Remove Plist #28

merged 5 commits into from
May 2, 2025

Conversation

efremidze
Copy link
Owner

@efremidze efremidze commented May 2, 2025

Summary by CodeRabbit

  • Chores
    • Streamlined app icon assets to use a single universal image.
    • Removed Info.plist files and updated project settings to enable automatic generation of configuration files.
    • Modernized Xcode project settings for improved build performance and compatibility.
    • Cleaned up scheme files by removing unnecessary or empty XML elements.

Copy link

coderabbitai bot commented May 2, 2025

Walkthrough

This update modernizes and streamlines the Xcode project configuration for an iOS framework and its example app. Explicit Info.plist files for both the framework and the example app were removed, with project settings updated to enable automatic generation of these files. The app icon asset catalog was simplified to a single universal entry. The Xcode project file was upgraded to a newer format, with enhanced build settings, improved parallel build capabilities, and additional compiler warnings. Scheme files were updated to a newer version and cleaned of redundant or empty XML elements.

Changes

File(s) Change Summary
Example/Assets.xcassets/AppIcon.appiconset/Contents.json Simplified app icon catalog: removed multiple idiom/scale entries, added a single universal iOS icon, reordered info keys.
Example/Info.plist
Sources/Info.plist
Deleted Info.plist files for both the example app and the framework, removing all explicit metadata and configuration previously declared in these files.
Haptica.xcodeproj/project.pbxproj Upgraded project object version; removed Info.plist file references; enabled automatic Info.plist generation; updated build settings for modern Xcode conventions; improved parallel build capability; enhanced compiler warnings and sandboxing; adjusted Swift optimization settings.
Haptica.xcodeproj/xcshareddata/xcschemes/Example.xcscheme
Haptica.xcodeproj/xcshareddata/xcschemes/Haptica.xcscheme
Updated scheme files to a newer version; removed redundant or empty XML elements; repositioned <Testables> in the example scheme.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant Xcode
    participant BuildSystem

    Developer->>Xcode: Build project
    Xcode->>BuildSystem: Start build
    BuildSystem-->>Xcode: Detects no explicit Info.plist
    Xcode->>BuildSystem: Generates Info.plist automatically
    BuildSystem->>Xcode: Uses universal app icon from asset catalog
    BuildSystem->>Developer: Build completes with updated settings
Loading

Poem

In the warren of Xcode, things got quite neat,
Plists hopped away, auto-magic is sweet!
One icon to rule them, for every device,
Build settings streamlined—oh, isn’t that nice?
Schemes now are cleaner, the project feels light,
A bunny’s delight in the soft build moonlight.
🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b33bb4a and 7016c02.

📒 Files selected for processing (6)
  • Example/Assets.xcassets/AppIcon.appiconset/Contents.json (1 hunks)
  • Example/Info.plist (0 hunks)
  • Haptica.xcodeproj/project.pbxproj (11 hunks)
  • Haptica.xcodeproj/xcshareddata/xcschemes/Example.xcscheme (2 hunks)
  • Haptica.xcodeproj/xcshareddata/xcschemes/Haptica.xcscheme (1 hunks)
  • Sources/Info.plist (0 hunks)
💤 Files with no reviewable changes (2)
  • Example/Info.plist
  • Sources/Info.plist
🔇 Additional comments (14)
Haptica.xcodeproj/project.pbxproj (9)

6-6: Project updated to newer object version.

The object version was updated from 46 to 54, reflecting modernization to a newer Xcode format.


197-199: Project build configuration improvements.

Added BuildIndependentTargetsInParallel = YES to enable parallel target builds and updated LastUpgradeCheck to 1620. These changes will improve build times and ensure compatibility with newer Xcode versions.


335-335: Enhanced compiler warnings.

Added CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES to both Debug and Release configurations, which helps catch potential issues with framework header inclusions.

Also applies to: 401-401


347-347: Improved security with script sandboxing.

Added ENABLE_USER_SCRIPT_SANDBOXING = YES to both Debug and Release configurations, which enhances build security by sandboxing build scripts.

Also applies to: 413-413


425-426: Optimized Swift compilation settings.

Updated Swift compilation settings in Release mode:

  • Added explicit SWIFT_COMPILATION_MODE = wholemodule
  • Changed optimization level to -O

These settings ensure optimal performance for release builds.


444-445: Modernized Info.plist handling for framework target.

Added:

  • ENABLE_MODULE_VERIFIER = YES for enhanced module safety checks
  • GENERATE_INFOPLIST_FILE = YES to automatically generate Info.plist

This eliminates the need for an explicit Info.plist file, streamlining the project structure.

Also applies to: 468-469


447-451: Updated runtime path configuration for framework.

Converted LD_RUNPATH_SEARCH_PATHS from a string to an array format, which is the preferred syntax in newer Xcode versions.

Also applies to: 471-475


487-487: Modernized Info.plist handling for Example app.

Added GENERATE_INFOPLIST_FILE = YES to automatically generate Info.plist for the Example app target, eliminating the need for an explicit Info.plist file.

Also applies to: 501-501


488-491: Updated runtime path configuration for Example app.

Converted LD_RUNPATH_SEARCH_PATHS from a string to an array format for both Debug and Release configurations. This is the preferred syntax in newer Xcode versions.

Also applies to: 502-505

Example/Assets.xcassets/AppIcon.appiconset/Contents.json (2)

3-7: Simplified app icon asset catalog.

Consolidated multiple device-specific icon entries into a single universal entry with:

  • "idiom" : "universal"
  • "platform" : "ios"
  • "size" : "1024x1024"

This simplification aligns with modern iOS app development practices where a single high-resolution app icon can be used for all devices.


9-12: Minor formatting adjustment in info dictionary.

Reordered the keys in the info dictionary (author and version), maintaining the same values. This is a non-functional change that may have been automatically applied by Xcode.

Haptica.xcodeproj/xcshareddata/xcschemes/Haptica.xcscheme (1)

3-3: Updated scheme to newer Xcode version.

Updated LastUpgradeVersion from "1020" to "1620", aligning with the project modernization. Empty <AdditionalOptions> elements were also removed (not visible in this diff).

Haptica.xcodeproj/xcshareddata/xcschemes/Example.xcscheme (2)

3-3: Updated scheme to newer Xcode version.

Updated LastUpgradeVersion from "1020" to "1620", aligning with the project modernization.


39-40: Adjusted XML structure in TestAction.

Repositioned the <Testables> element to follow the <MacroExpansion> element. Empty <AdditionalOptions> elements were also removed (not visible in this diff).


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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@efremidze efremidze merged commit 59ba749 into master May 2, 2025
2 checks passed
@efremidze efremidze deleted the fix-plist branch May 2, 2025 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant