🔨: Update Docs

main
Drashti Patel 2025-09-14 10:42:43 +05:30
parent b7ff79f08c
commit 27c60b6679
10 changed files with 89 additions and 89 deletions

View File

@ -4,9 +4,9 @@
```bash ```bash
# Create new React Native project with TypeScript # Create new React Native project with TypeScript
npx react-native init SaayamApp --template react-native-template-typescript npx react-native init MyApp --template react-native-template-typescript
cd SaayamApp cd MyApp
# Initialize git repository # Initialize git repository
git init git init
@ -138,10 +138,10 @@ yarn add react-native-config
**Create environment files:** **Create environment files:**
```bash ```bash
# .env.development # .env.development
API_BASE_URL=https://dev-api.saayam.com API_BASE_URL=https://dev-api.myapp.com
APP_ENV=development APP_ENV=development
# .env.production # .env.production
API_BASE_URL=https://api.saayam.com API_BASE_URL=https://api.myapp.com
APP_ENV=production APP_ENV=production
``` ```

View File

@ -7,7 +7,7 @@
**Using IconKitchen or manually:** **Using IconKitchen or manually:**
1. **Android**: Place icons in `android/app/src/main/res/mipmap-*` 1. **Android**: Place icons in `android/app/src/main/res/mipmap-*`
2. **iOS**: Use Xcode Asset Catalog in `ios/SaayamApp/Images.xcassets` 2. **iOS**: Use Xcode Asset Catalog in `ios/MyApp/Images.xcassets`
**Android Icon Sizes:** **Android Icon Sizes:**
- `mipmap-mdpi`: 48x48px - `mipmap-mdpi`: 48x48px
@ -79,7 +79,7 @@ yarn add react-native-splash-screen
**iOS Configuration:** **iOS Configuration:**
1. Add fonts to Xcode project 1. Add fonts to Xcode project
2. Update `ios/SaayamApp/Info.plist`: 2. Update `ios/MyApp/Info.plist`:
```xml ```xml
<key>UIAppFonts</key> <key>UIAppFonts</key>
<array> <array>
@ -151,8 +151,8 @@ import icoMoonConfig from '@assets/fonts/selection.json';
const IconFont = createIconSetFromIcoMoon( const IconFont = createIconSetFromIcoMoon(
icoMoonConfig, icoMoonConfig,
'SaayamIcons', 'MyAppIcons',
'SaayamIcons.ttf' 'MyAppIcons.ttf'
); );
interface CustomIconProps { interface CustomIconProps {

View File

@ -303,7 +303,7 @@ import {LinkingOptions} from '@react-navigation/native';
import {RootStackParamList} from './types'; import {RootStackParamList} from './types';
const linking: LinkingOptions<RootStackParamList> = { const linking: LinkingOptions<RootStackParamList> = {
prefixes: ['saayam://'], prefixes: ['myapp://'],
config: { config: {
screens: { screens: {
Auth: { Auth: {

View File

@ -24,8 +24,8 @@ module.exports = {
}, },
app: { app: {
type: 'ios.app', type: 'ios.app',
binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/SaayamApp.app', binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/MyApp.app',
build: 'xcodebuild -workspace ios/SaayamApp.xcworkspace -scheme SaayamApp -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build', build: 'xcodebuild -workspace ios/MyApp.xcworkspace -scheme MyApp -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build',
}, },
}, },
'android.emu.debug': { 'android.emu.debug': {
@ -281,7 +281,7 @@ describe('Device Interactions', () => {
}); });
it('should handle deep links', async () => { it('should handle deep links', async () => {
await device.openURL({url: 'saayam://request/123'}); await device.openURL({url: 'myapp://request/123'});
await waitFor(element(by.id('requestDetailScreen'))) await waitFor(element(by.id('requestDetailScreen')))
.toBeVisible() .toBeVisible()
.withTimeout(10000); .withTimeout(10000);

View File

@ -136,7 +136,7 @@ import {SecureStorage} from '@utils/secureStorage';
import {EncryptionService} from '@utils/encryption'; import {EncryptionService} from '@utils/encryption';
const secureAPI = axios.create({ const secureAPI = axios.create({
baseURL: 'https://api.saayam.com', baseURL: 'https://api.myapp.com',
timeout: 10000, timeout: 10000,
}); });
@ -390,7 +390,7 @@ export class CertificatePinning {
request.trusty = { request.trusty = {
hosts: [ hosts: [
{ {
host: 'api.saayam.com', host: 'api.myapp.com',
certificates: this.PINNED_CERTIFICATES, certificates: this.PINNED_CERTIFICATES,
}, },
], ],

View File

@ -111,11 +111,11 @@ jobs:
- name: Build iOS - name: Build iOS
run: | run: |
cd ios cd ios
xcodebuild -workspace SaayamApp.xcworkspace \ xcodebuild -workspace MyApp.xcworkspace \
-scheme SaayamApp \ -scheme MyApp \
-configuration Release \ -configuration Release \
-destination generic/platform=iOS \ -destination generic/platform=iOS \
-archivePath $PWD/build/SaayamApp.xcarchive \ -archivePath $PWD/build/MyApp.xcarchive \
archive archive
``` ```
@ -240,15 +240,15 @@ platform :ios do
) )
increment_build_number( increment_build_number(
xcodeproj: "SaayamApp.xcodeproj" xcodeproj: "MyApp.xcodeproj"
) )
build_app( build_app(
scheme: "SaayamApp", scheme: "MyApp",
export_method: "app-store", export_method: "app-store",
export_options: { export_options: {
provisioningProfiles: { provisioningProfiles: {
"com.saayam.app" => "match AppStore com.saayam.app" "com.myapp.app" => "match AppStore com.myapp.app"
} }
} }
) )
@ -273,7 +273,7 @@ platform :ios do
) )
build_app( build_app(
scheme: "SaayamApp", scheme: "MyApp",
export_method: "app-store" export_method: "app-store"
) )
@ -424,7 +424,7 @@ fastlane match appstore
git_url("https://github.com/your-org/certificates") git_url("https://github.com/your-org/certificates")
storage_mode("git") storage_mode("git")
type("development") type("development")
app_identifier(["com.saayam.app"]) app_identifier(["com.myapp.app"])
username("your-apple-id@example.com") username("your-apple-id@example.com")
``` ```

View File

@ -6,10 +6,10 @@
```bash ```bash
# Generate a new keystore # Generate a new keystore
keytool -genkeypair -v -storetype PKCS12 -keystore saayam-release-key.keystore -alias saayam-key-alias -keyalg RSA -keysize 2048 -validity 10000 keytool -genkeypair -v -storetype PKCS12 -keystore myapp-release-key.keystore -alias myapp-key-alias -keyalg RSA -keysize 2048 -validity 10000
# Verify keystore # Verify keystore
keytool -list -v -keystore saayam-release-key.keystore keytool -list -v -keystore myapp-release-key.keystore
``` ```
### Keystore Security ### Keystore Security
@ -17,10 +17,10 @@ keytool -list -v -keystore saayam-release-key.keystore
```bash ```bash
# Store keystore securely # Store keystore securely
mkdir -p ~/.android/keystores mkdir -p ~/.android/keystores
mv saayam-release-key.keystore ~/.android/keystores/ mv myapp-release-key.keystore ~/.android/keystores/
# Set proper permissions # Set proper permissions
chmod 600 ~/.android/keystores/saayam-release-key.keystore chmod 600 ~/.android/keystores/myapp-release-key.keystore
``` ```
## Gradle Configuration ## Gradle Configuration
@ -30,10 +30,10 @@ chmod 600 ~/.android/keystores/saayam-release-key.keystore
**android/gradle.properties:** **android/gradle.properties:**
```properties ```properties
# Keystore configuration # Keystore configuration
SAAYAM_UPLOAD_STORE_FILE=saayam-release-key.keystore MYAPP_UPLOAD_STORE_FILE=myapp-release-key.keystore
SAAYAM_UPLOAD_KEY_ALIAS=saayam-key-alias MYAPP_UPLOAD_KEY_ALIAS=myapp-key-alias
SAAYAM_UPLOAD_STORE_PASSWORD=your_keystore_password MYAPP_UPLOAD_STORE_PASSWORD=your_keystore_password
SAAYAM_UPLOAD_KEY_PASSWORD=your_key_password MYAPP_UPLOAD_KEY_PASSWORD=your_key_password
# Build optimization # Build optimization
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
@ -53,7 +53,7 @@ android {
compileSdkVersion rootProject.ext.compileSdkVersion compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig { defaultConfig {
applicationId "com.saayam.app" applicationId "com.myapp.app"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1 versionCode 1
@ -69,11 +69,11 @@ android {
keyPassword 'android' keyPassword 'android'
} }
release { release {
if (project.hasProperty('SAAYAM_UPLOAD_STORE_FILE')) { if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(SAAYAM_UPLOAD_STORE_FILE) storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword SAAYAM_UPLOAD_STORE_PASSWORD storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias SAAYAM_UPLOAD_KEY_ALIAS keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword SAAYAM_UPLOAD_KEY_PASSWORD keyPassword MYAPP_UPLOAD_KEY_PASSWORD
} }
} }
} }
@ -116,7 +116,7 @@ android {
-keep class com.facebook.jni.** { *; } -keep class com.facebook.jni.** { *; }
# Keep our application class # Keep our application class
-keep class com.saayam.** { *; } -keep class com.myapp.** { *; };
# Keep native methods # Keep native methods
-keepclassmembers class * { -keepclassmembers class * {
@ -207,22 +207,22 @@ android {
dimension "version" dimension "version"
applicationIdSuffix ".dev" applicationIdSuffix ".dev"
versionNameSuffix "-dev" versionNameSuffix "-dev"
buildConfigField "String", "API_BASE_URL", '"https://dev-api.saayam.com"' buildConfigField "String", "API_BASE_URL", '"https://dev-api.myapp.com"'
resValue "string", "app_name", "Saayam Dev" resValue "string", "app_name", "MyApp Dev"
} }
staging { staging {
dimension "version" dimension "version"
applicationIdSuffix ".staging" applicationIdSuffix ".staging"
versionNameSuffix "-staging" versionNameSuffix "-staging"
buildConfigField "String", "API_BASE_URL", '"https://staging-api.saayam.com"' buildConfigField "String", "API_BASE_URL", '"https://staging-api.myapp.com"'
resValue "string", "app_name", "Saayam Staging" resValue "string", "app_name", "MyApp Staging"
} }
production { production {
dimension "version" dimension "version"
buildConfigField "String", "API_BASE_URL", '"https://api.saayam.com"' buildConfigField "String", "API_BASE_URL", '"https://api.myapp.com"'
resValue "string", "app_name", "Saayam" resValue "string", "app_name", "MyApp"
} }
} }
} }
@ -234,7 +234,7 @@ android {
1. **Go to Google Play Console** 1. **Go to Google Play Console**
2. **Create Application** 2. **Create Application**
- App name: Saayam - App name: MyApp
- Default language: English - Default language: English
- App or game: App - App or game: App
- Free or paid: Free - Free or paid: Free

View File

@ -11,8 +11,8 @@
### App Store Connect Setup ### App Store Connect Setup
1. **Create App Record** 1. **Create App Record**
- App name: Saayam - App name: MyApp
- Bundle ID: com.saayam.app - Bundle ID: com.myapp.app
- SKU: unique identifier - SKU: unique identifier
- Primary language: English - Primary language: English
@ -57,7 +57,7 @@ fastlane match adhoc
git_url("https://github.com/your-org/certificates") git_url("https://github.com/your-org/certificates")
storage_mode("git") storage_mode("git")
type("development") type("development")
app_identifier(["com.saayam.app"]) app_identifier(["com.myapp.app"])
username("your-apple-id@example.com") username("your-apple-id@example.com")
team_id("YOUR_TEAM_ID") team_id("YOUR_TEAM_ID")
``` ```
@ -74,7 +74,7 @@ team_id("YOUR_TEAM_ID")
- iOS Distribution Certificate - iOS Distribution Certificate
3. **Create App ID** 3. **Create App ID**
- Bundle ID: com.saayam.app - Bundle ID: com.myapp.app
- Enable required capabilities (Push Notifications, etc.) - Enable required capabilities (Push Notifications, etc.)
4. **Create Provisioning Profiles** 4. **Create Provisioning Profiles**
@ -90,7 +90,7 @@ team_id("YOUR_TEAM_ID")
# Code Signing # Code Signing
CODE_SIGN_IDENTITY = "iPhone Distribution" CODE_SIGN_IDENTITY = "iPhone Distribution"
DEVELOPMENT_TEAM = "YOUR_TEAM_ID" DEVELOPMENT_TEAM = "YOUR_TEAM_ID"
PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.saayam.app" PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.myapp.app"
# Build Configuration # Build Configuration
ENABLE_BITCODE = YES ENABLE_BITCODE = YES
@ -104,16 +104,16 @@ TARGETED_DEVICE_FAMILY = "1,2" # iPhone and iPad
### Info.plist Configuration ### Info.plist Configuration
**ios/SaayamApp/Info.plist:** **ios/MyApp/Info.plist:**
```xml ```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>Saayam</string> <string>MyApp</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.saayam.app</string> <string>com.myapp.app</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1</string> <string>1</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
@ -155,16 +155,16 @@ rm -rf build/
pod install pod install
# Build for device # Build for device
xcodebuild -workspace SaayamApp.xcworkspace \ xcodebuild -workspace MyApp.xcworkspace \
-scheme SaayamApp \ -scheme MyApp \
-configuration Release \ -configuration Release \
-destination generic/platform=iOS \ -destination generic/platform=iOS \
-archivePath $PWD/build/SaayamApp.xcarchive \ -archivePath $PWD/build/MyApp.xcarchive \
archive archive
# Export IPA # Export IPA
xcodebuild -exportArchive \ xcodebuild -exportArchive \
-archivePath $PWD/build/SaayamApp.xcarchive \ -archivePath $PWD/build/MyApp.xcarchive \
-exportPath $PWD/build/ \ -exportPath $PWD/build/ \
-exportOptionsPlist ExportOptions.plist -exportOptionsPlist ExportOptions.plist
``` ```
@ -189,8 +189,8 @@ xcodebuild -exportArchive \
<true/> <true/>
<key>provisioningProfiles</key> <key>provisioningProfiles</key>
<dict> <dict>
<key>com.saayam.app</key> <key>com.myapp.app</key>
<string>match AppStore com.saayam.app</string> <string>match AppStore com.myapp.app</string>
</dict> </dict>
</dict> </dict>
</plist> </plist>
@ -215,16 +215,16 @@ platform :ios do
# Increment build number # Increment build number
increment_build_number( increment_build_number(
xcodeproj: "SaayamApp.xcodeproj" xcodeproj: "MyApp.xcodeproj"
) )
# Build the app # Build the app
build_app( build_app(
scheme: "SaayamApp", scheme: "MyApp",
export_method: "app-store", export_method: "app-store",
export_options: { export_options: {
provisioningProfiles: { provisioningProfiles: {
"com.saayam.app" => "match AppStore com.saayam.app" "com.myapp.app" => "match AppStore com.myapp.app"
} }
} }
) )
@ -246,7 +246,7 @@ platform :ios do
) )
build_app( build_app(
scheme: "SaayamApp", scheme: "MyApp",
export_method: "app-store" export_method: "app-store"
) )
@ -285,7 +285,7 @@ end
#!/bin/bash #!/bin/bash
VERSION_TYPE=${1:-patch} # major, minor, patch VERSION_TYPE=${1:-patch} # major, minor, patch
PLIST_PATH="ios/SaayamApp/Info.plist" PLIST_PATH="ios/MyApp/Info.plist"
# Get current version # Get current version
CURRENT_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$PLIST_PATH") CURRENT_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$PLIST_PATH")
@ -337,7 +337,7 @@ echo "Version updated successfully!"
```ruby ```ruby
# Fastlane lane for internal testing # Fastlane lane for internal testing
lane :internal do lane :internal do
build_app(scheme: "SaayamApp") build_app(scheme: "MyApp")
upload_to_testflight( upload_to_testflight(
groups: ["Internal Testers"], groups: ["Internal Testers"],
@ -352,7 +352,7 @@ end
```ruby ```ruby
# Fastlane lane for external testing # Fastlane lane for external testing
lane :external do lane :external do
build_app(scheme: "SaayamApp") build_app(scheme: "MyApp")
upload_to_testflight( upload_to_testflight(
groups: ["Beta Testers"], groups: ["Beta Testers"],
@ -380,7 +380,7 @@ privacy_url.txt # Privacy policy URL
**description.txt:** **description.txt:**
``` ```
Saayam is a revolutionary fundraising platform that connects donors with meaningful causes in their local community. MyApp is a revolutionary platform that connects users with meaningful services in their local community.
Key Features: Key Features:
• Browse local fundraising requests • Browse local fundraising requests
@ -389,7 +389,7 @@ Key Features:
• Secure payment processing • Secure payment processing
• Real-time updates on funded projects • Real-time updates on funded projects
Join thousands of users making a difference in their communities. Download Saayam today and start supporting causes that matter to you. Join thousands of users making a difference in their communities. Download MyApp today and start using services that matter to you.
``` ```
### Screenshots ### Screenshots
@ -415,7 +415,7 @@ languages([
"en-US" "en-US"
]) ])
scheme("SaayamApp") scheme("MyApp")
clear_previous_screenshots(true) clear_previous_screenshots(true)
``` ```
@ -479,14 +479,14 @@ clear_previous_screenshots(true)
```bash ```bash
# Verbose build output # Verbose build output
xcodebuild -workspace SaayamApp.xcworkspace \ xcodebuild -workspace MyApp.xcworkspace \
-scheme SaayamApp \ -scheme MyApp \
-configuration Release \ -configuration Release \
-destination generic/platform=iOS \ -destination generic/platform=iOS \
archive | xcpretty archive | xcpretty
# Check build settings # Check build settings
xcodebuild -workspace SaayamApp.xcworkspace \ xcodebuild -workspace MyApp.xcworkspace \
-scheme SaayamApp \ -scheme MyApp \
-showBuildSettings -showBuildSettings
``` ```

View File

@ -52,7 +52,7 @@ const { execSync } = require('child_process');
const versionType = process.argv[2] || 'patch'; const versionType = process.argv[2] || 'patch';
const packageJsonPath = path.join(__dirname, '../package.json'); const packageJsonPath = path.join(__dirname, '../package.json');
const androidBuildGradle = path.join(__dirname, '../android/app/build.gradle'); const androidBuildGradle = path.join(__dirname, '../android/app/build.gradle');
const iosPlistPath = path.join(__dirname, '../ios/SaayamApp/Info.plist'); const iosPlistPath = path.join(__dirname, '../ios/MyApp/Info.plist');
// Read current version from package.json // Read current version from package.json
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
@ -218,8 +218,8 @@ npm install -D standard-version
{"type": "perf", "section": "Performance Improvements"}, {"type": "perf", "section": "Performance Improvements"},
{"type": "test", "hidden": true} {"type": "test", "hidden": true}
], ],
"commitUrlFormat": "https://github.com/your-org/saayam-app/commit/{{hash}}", "commitUrlFormat": "https://github.com/your-org/myapp/commit/{{hash}}",
"compareUrlFormat": "https://github.com/your-org/saayam-app/compare/{{previousTag}}...{{currentTag}}" "compareUrlFormat": "https://github.com/your-org/myapp/compare/{{previousTag}}...{{currentTag}}"
} }
``` ```
@ -333,7 +333,7 @@ const path = require('path');
const packageJsonPath = path.join(__dirname, '../package.json'); const packageJsonPath = path.join(__dirname, '../package.json');
const androidBuildGradle = path.join(__dirname, '../android/app/build.gradle'); const androidBuildGradle = path.join(__dirname, '../android/app/build.gradle');
const iosPlistPath = path.join(__dirname, '../ios/SaayamApp/Info.plist'); const iosPlistPath = path.join(__dirname, '../ios/MyApp/Info.plist');
function validateVersions() { function validateVersions() {
// Get package.json version // Get package.json version

View File

@ -19,12 +19,12 @@ yarn add react-native-code-push
code-push login code-push login
# Create apps # Create apps
code-push app add SaayamApp-iOS ios react-native code-push app add MyApp-iOS ios react-native
code-push app add SaayamApp-Android android react-native code-push app add MyApp-Android android react-native
# Get deployment keys # Get deployment keys
code-push deployment ls SaayamApp-iOS -k code-push deployment ls MyApp-iOS -k
code-push deployment ls SaayamApp-Android -k code-push deployment ls MyApp-Android -k
``` ```
### Environment Configuration ### Environment Configuration
@ -200,18 +200,18 @@ export class UpdateManager {
```bash ```bash
# Deploy to staging first # Deploy to staging first
code-push release-react SaayamApp-iOS ios --deploymentName Staging code-push release-react MyApp-iOS ios --deploymentName Staging
# Test staging deployment # Test staging deployment
# If successful, promote to production with rollout percentage # If successful, promote to production with rollout percentage
# Deploy to 10% of production users # Deploy to 10% of production users
code-push release-react SaayamApp-iOS ios --deploymentName Production --rollout 10% code-push release-react MyApp-iOS ios --deploymentName Production --rollout 10%
# Monitor metrics and gradually increase rollout # Monitor metrics and gradually increase rollout
code-push patch SaayamApp-iOS Production --rollout 25% code-push patch MyApp-iOS Production --rollout 25%
code-push patch SaayamApp-iOS Production --rollout 50% code-push patch MyApp-iOS Production --rollout 50%
code-push patch SaayamApp-iOS Production --rollout 100% code-push patch MyApp-iOS Production --rollout 100%
``` ```
### Automated Deployment ### Automated Deployment
@ -236,7 +236,7 @@ if (!platform || !["ios", "android"].includes(platform)) {
process.exit(1); process.exit(1);
} }
const appName = platform === "ios" ? "SaayamApp-iOS" : "SaayamApp-Android"; const appName = platform === "ios" ? "MyApp-iOS" : "MyApp-Android";
const deploymentName = environment === "production" ? "Production" : "Staging"; const deploymentName = environment === "production" ? "Production" : "Staging";
// Get version from package.json // Get version from package.json
@ -288,13 +288,13 @@ function notifyDeployment(appName, deployment, version, rollout) {
```bash ```bash
# Check deployment history # Check deployment history
code-push deployment history SaayamApp-iOS Production code-push deployment history MyApp-iOS Production
# Rollback to previous version # Rollback to previous version
code-push rollback SaayamApp-iOS Production code-push rollback MyApp-iOS Production
# Rollback to specific label # Rollback to specific label
code-push rollback SaayamApp-iOS Production --targetRelease v1.2.3 code-push rollback MyApp-iOS Production --targetRelease v1.2.3
``` ```
## Update Policies ## Update Policies