🔨: Update Docs
parent
b7ff79f08c
commit
27c60b6679
|
@ -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
|
||||||
```
|
```
|
|
@ -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 {
|
||||||
|
|
|
@ -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: {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
|
@ -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")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
```
|
```
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue