๐ฑ [CRITICAL] Create native mobile app structure for iOS/Android store submission
GitHub Issue: React Native App Store Submission Setup
Title
๐ฑ [CRITICAL] Create native mobile app structure for iOS/Android store submission
Priority
HIGH - Blocking mobile app store submissions (Apple App Store, Google Play Store)
Description
The Claude Code mobile application currently exists as a React Native project but lacks the native iOS and Android project structures required for app store submission. The current setup is incomplete for production mobile app deployment.
Current State Analysis
Missing Critical Components
- [ ] Android native project (
android/directory with Gradle setup) - [ ] iOS native project (
ios/directory with Xcode project) - [ ] App store metadata and configuration files
- [ ] Code signing and build configurations
- [ ] Store-specific assets and screenshots
Existing Assets
- โ React Native TypeScript codebase
- โ Package.json with mobile dependencies
- โ Navigation and component structure
- โ CI/CD pipeline configuration (basic mobile build steps)
Implementation Requirements
A. Initialize React Native Projects
1. Reinitialize React Native with native code:
cd mobile-app
# Backup existing source code
cp -r src/ ../mobile-app-backup/
# Initialize new React Native project with native code
npx react-native init ClaudeCodeMobile --template react-native-template-typescript
# Copy back custom source code and configurations
2. Alternative approach - Add native projects to existing structure:
cd mobile-app
npx react-native eject # If using Expo
# OR
react-native upgrade # To add native directories
B. Android Configuration
1. Create/Update android/app/build.gradle:
android {
compileSdkVersion 34
buildToolsVersion "34.0.0"
defaultConfig {
applicationId "com.claudecode.mobile"
minSdkVersion 21
targetSdkVersion 34
versionCode 1
versionName "1.0.0"
multiDexEnabled true
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
}
2. Android app icons and resources:
android/app/src/main/res/
โโโ mipmap-hdpi/
โ โโโ ic_launcher.png (72x72)
โโโ mipmap-mdpi/
โ โโโ ic_launcher.png (48x48)
โโโ mipmap-xhdpi/
โ โโโ ic_launcher.png (96x96)
โโโ mipmap-xxhdpi/
โ โโโ ic_launcher.png (144x144)
โโโ mipmap-xxxhdpi/
โ โโโ ic_launcher.png (192x192)
โโโ values/
โโโ strings.xml
โโโ colors.xml
C. iOS Configuration
1. Xcode project setup in ios/ClaudeCodeMobile.xcodeproj:
<!-- ios/ClaudeCodeMobile/Info.plist -->
<key>CFBundleDisplayName</key>
<string>Claude Code</string>
<key>CFBundleIdentifier</key>
<string>com.claudecode.mobile</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
2. iOS app icons:
ios/ClaudeCodeMobile/Images.xcassets/AppIcon.appiconset/
โโโ Icon-20.png (20x20)
โโโ Icon-20@2x.png (40x40)
โโโ Icon-20@3x.png (60x60)
โโโ Icon-29.png (29x29)
โโโ Icon-29@2x.png (58x58)
โโโ Icon-29@3x.png (87x87)
โโโ Icon-40.png (40x40)
โโโ Icon-40@2x.png (80x80)
โโโ Icon-40@3x.png (120x120)
โโโ Icon-60@2x.png (120x120)
โโโ Icon-60@3x.png (180x180)
โโโ Icon-76.png (76x76)
โโโ Icon-76@2x.png (152x152)
โโโ Icon-83.5@2x.png (167x167)
โโโ Icon-1024.png (1024x1024)
D. App Store Configuration Files
1. Android - Create android/app/src/main/play/:
play/
โโโ release-notes/
โ โโโ en-US/
โ โโโ default.txt
โโโ listings/
โ โโโ en-US/
โ โโโ title.txt ("Claude Code - AI Development")
โ โโโ short-description.txt
โ โโโ full-description.txt
โ โโโ graphics/
โ โโโ icon/ (512x512 PNG)
โ โโโ feature-graphic/ (1024x500 PNG)
โ โโโ phone-screenshots/ (multiple PNG files)
โโโ contact-website.txt
2. iOS - App Store Connect metadata:
// ios/metadata.json
{
"name": "Claude Code",
"subtitle": "AI-Powered Development Environment",
"description": "Intelligent coding assistant powered by Claude AI with real-time collaboration and advanced development tools.",
"keywords": "development,coding,ai,claude,programming,ide",
"copyright": "ยฉ 2024 Claude Code",
"privacy_policy": "https://claude-code.dev/privacy",
"category": "DEVELOPER_TOOLS",
"age_rating": "4+"
}
E. Build Scripts and Automation
1. Update package.json scripts:
{
"scripts": {
"android:build": "cd android && ./gradlew assembleRelease",
"android:bundle": "cd android && ./gradlew bundleRelease",
"ios:build": "cd ios && xcodebuild -workspace ClaudeCodeMobile.xcworkspace -scheme ClaudeCodeMobile -configuration Release -sdk iphoneos -archivePath ClaudeCodeMobile.xcarchive archive",
"ios:export": "cd ios && xcodebuild -exportArchive -archivePath ClaudeCodeMobile.xcarchive -exportPath ./build -exportFormat ipa -exportOptionsPlist exportOptions.plist",
"store:android": "npm run android:bundle && fastlane android deploy",
"store:ios": "npm run ios:build && npm run ios:export && fastlane ios deploy"
}
}
2. Fastlane setup for automated deployment:
# Fastfile
platform :android do
desc "Deploy to Google Play Store"
lane :deploy do
gradle(task: "bundleRelease")
upload_to_play_store(
track: "production",
release_status: "draft"
)
end
end
platform :ios do
desc "Deploy to App Store"
lane :deploy do
build_app(scheme: "ClaudeCodeMobile")
upload_to_app_store(
submit_for_review: false,
automatic_release: false
)
end
end
Technical Requirements
Development Tools Needed
- Android: Android Studio, JDK 11+, Android SDK 34
- iOS: Xcode 15+, iOS SDK 17+, macOS development machine
- Certificates: Apple Developer Account, Google Play Console Account
- CI/CD: Updated GitHub Actions with signing certificates
App Store Requirements Compliance
Google Play Store:
- [ ] Target SDK 34 (Android 14)
- [ ] 64-bit native code support
- [ ] Privacy policy URL
- [ ] Content rating questionnaire
- [ ] App bundle format (.aab)
Apple App Store:
- [ ] iOS 12.0+ minimum deployment target
- [ ] Privacy nutrition labels
- [ ] App Transport Security compliance
- [ ] Notarization for distribution
Success Criteria
- [ ] Android APK/AAB builds successfully
- [ ] iOS IPA builds and archives successfully
- [ ] Apps install and run on physical devices
- [ ] Store validation passes (Play Console, App Store Connect)
- [ ] CI/CD pipeline builds mobile apps without errors
- [ ] All app store metadata and assets are complete
Testing Requirements
1. Local Build Testing:
# Android
cd mobile-app
npm run android:build
# Test APK installation on Android device
# iOS (macOS only)
npm run ios:build
# Test IPA installation via Xcode or TestFlight
2. Store Validation:
- Google Play Console > Internal testing track
- Apple App Store Connect > TestFlight internal testing
Timeline
Estimated Completion: 12-16 hours
- Native project setup: 4 hours
- Asset generation and configuration: 4 hours
- Build script configuration: 3 hours
- Store metadata preparation: 3 hours
- Testing and validation: 2-3 hours
Dependencies
- macOS machine for iOS development
- Android development environment
- Developer account access (Apple Developer Program, Google Play Console)
- Code signing certificates and provisioning profiles
- CI/CD secret management for certificates
Related Files
/mobile-app/package.json/mobile-app/android/(to be created)/mobile-app/ios/(to be created)/.github/workflows/production-deploy.yml(mobile build steps)
Risks and Mitigation
- Risk: Loss of existing React Native code during restructuring
- Mitigation: Complete backup before native project initialization
- Risk: Certificate and signing complexity
- Mitigation: Use GitHub Actions encrypted secrets, document signing process
- Risk: Platform-specific build failures
- Mitigation: Test builds locally before CI/CD integration
Impact
CRITICAL BUSINESS IMPACT - This issue blocks:
- Mobile app store presence (App Store, Google Play)
- Native mobile app distribution channels
- Mobile user acquisition and retention
- Revenue generation from mobile platform
- Competitive positioning in mobile development tools market
This issue has 3 comments on GitHub. Read the full discussion on GitHub โ