1

あなたが、単一のコマンドで、複数の設定(つまり、ベータ版hockeyappのためのベータ版、および店舗用のプロダクション)で署名付きAPKとIPAを生成する方法を研究したかどうかを知りたいと思います。複数の配備のための1つのコマンド

私はそこにすべての可能性を模索しており、これを行う方法はたくさんあるようです。

また、ENVIRONMENTのような変数を渡してAPI URLなどのJavaScript定数を設定したり、デバッグをオン/オフにしたりできます。 これは私が今考えていることです:

前の問題を解決するためにhttps://www.npmjs.com/package/react-native-configを使用しています。 Android上

私はGradleのでbuildTypesにタイプを追加することを考えています。これまでのところ、私はそれを動作させることができませんでした。私はネイティブ構成ではあまり経験がありません。

次に、選択したenv(ステージング/ dev/prod)でオフラインバンドルを作成し、gradleのassembleRelease/assembleBetaを使用するbashスクリプトを作成します。あなたはそれが実行可能だと思いますか? iOSの上で

、それは少し複雑になります。

それが構築するときにCLIでプロジェクトの設定を変更するのは難しいように見えます。だから私は、各環境ごとにプロジェクトを複製する必要があると考えていた:project-dev.xcodeproj、project-prod.xcodeproj ...あなたはポイントを得た。

もう一度、私はバンドルを作り、与えられたプロジェクトの中でそれをcpします。 CLIでxcodeコンパイルをトリガするのもいいかもしれませんが、これを設定するのが難しいかどうかはわかりません。

あなたはこれについてどう思いますか?多分あなたの中には既にカスタムスクリプトを使っている人がいるでしょうか?

ケーキのアイシングは、HockeyAppの 'パック'ツールを使用してアップロードすることですが、アプリケーションがiOSとAndroidの両方でビルドされたら、設定が簡単です。

+0

私はHockeyAppを理解していませんが、私は.IPAファイルをリリース用にビルドしてから、社内テストのために辞めて、顧客やアプリケーションストアに提出しているものを正確にテストできるようにします。これは長いプロセスですが、手順を確認したい場合はお知らせください。 – Putz1103

+0

確かに、私は本当に知りたいです:) –

答えて

0

これは、パラメータを使用してコマンドラインをビルドするために使用するプロセスです。私のシステムでは、リリース版の.ipsファイルが作成され、開発用のプロビジョニングプロファイルを使ってそのファイルがコピーされて辞められ、顧客やアプリケーションストアに送信される内容を正確にテストできます。これのすべてがあなたにとって有益なものではありませんが、うまくいけばいくつかの意志です。

Scheme="(The scheme I am going to build inside my project)" 
WindowsSavePath="(path to my source archive directory on a shared computer)" 
InstallSavePath="(path to my .ipa archive directory on a shared computer" 
Customer="(relative path inside archive directories)" 
Fleet="(Continued relative path)" 
PathToProject="(path to the folder on my Mac with the xcode project file)" 
ProjectName="(project name).xcodeproj" 
PlistPath="$Scheme-Info.plist" 
appScheme="$Scheme" 
AppName="(The name that I want to give my .ipa file)" 
Version="(The version number for this build)" 
AppendedFileName="-QA" //I use this for QA and Production distinction 
exportPath="$InstallSavePath/$Fleet/$Customer/$Version$AppendedFileName/" 
CompanyAppIdentifierPrefix="(my generic provisioning profile identifier)" 
ArchiveLocation="$WindowsSavePath/$Fleet/$Customer/$Version$AppendedFileName" 
SourceCodeDestination="(my compiled absolute path to the archive directories)" 

これは、すべてのSetVariables.shファイルに含まれています:

まず、私は、ビルドに使用するつもりだグローバルパラメータを設定し、変数のファイルを持っています。これでプロジェクトの構築が始まります。

#Update the version number in the plist file for the project 
/usr/libexec/PListBuddy -c "Set :CFBundleShortVersionString $Version" "$PathToProject/$PlistPath" 
/usr/libexec/PListBuddy -c "Set :CFBundleVersion $BuildVersion" "$PathToProject/$PlistPath" 

#Now build and archive the project, the create the .ipa file for either submittal or giving to customers 
mkdir -p "$exportPath" 
mkdir -p "${ArchiveLocation}/dSYM" 
xcodebuild -project "$PathToProject/$ProjectName" -scheme "$Scheme" DSTROOT="$exportPath" DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" DWARF_DSYM_FOLDER_PATH="${ArchiveLocation}/dSYM" archive -archivePath "$exportPath${appScheme} $Version$AppendedFileName.xcarchive" 
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${exportPath}Applications/${AppName}.app" -o "${exportPath}${appScheme} $Version$AppendedFileName.ipa" 

#Now resign and create an internal dev version to test on development ipads 
rm -r Payload SwiftSupport 
unzip -q "${exportPath}${appScheme} $Version$AppendedFileName.ipa" 

BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "Payload/${AppName}.app/Info.plist") 
. ./CreateInternalEntitlements.sh "$CompanyAppIdentifierPrefix.$BUNDLE_ID" 
. ./resign.sh "${exportPath}${appScheme} $Version$AppendedFileName.ipa" "${exportPath}${appScheme} ${Version}${AppendedFileName} Internal" internalDev.mobileprovision "(My developer account tied to the internal provisioning profile" Entitlements.plist 
rm -r Payload SwiftSupport 

#Now delete the intermediate files from the installs directory 
rm -rf "$exportPath${appScheme} $Version$AppendedFileName.xcarchive" 
rm -rf "${exportPath}Applications" 

私は(resign.sh、createentitlements.sh)そこにいくつかのことを残しているが、これらのプロセスは、私はstackoverflowの上で見つかった:別.SHファイルでは最初に私はその後、私は、コンパイルを開始、SetVariablesファイルを呼び出しますだから、あなたが見つけてもそれほど難しいはずはありません。

私は決してそれをやったことはありませんが、あなたがしようとしているように、xcodebuildのコマンドライン引数を変更してリリースまたはデバッグを構築することができると確信しています。また、xcodebuildを2度、1度はデバッグ用に、もう一度リリース用に実行し、ビルドを別の場所に保存することもできます。

私はこれが少なくともあなたの目標を少しでも助けてくれることを願っています。これは1週間か2週間ですべてをまとめ、私のニーズに応えるようになった。がんばろう。

+0

ありがとう、私はPlistbuddyを知らなかった、私はあなたの例を見てみましょう。 –

関連する問題