Saya menggunakan Fastlane match dan gym untuk membuat dan mendistribusikan aplikasi saya dari CI (Bitrise) ke Fabric. Pengaturan Xcode saya disetel ke manual dengan konfigurasi Rilis menggunakan profil AdHoc seperti yang dijelaskan dalam rel Dokumen Fastlane
Sekarang saya ingin mendistribusikan ke Appstore dari CI tetapi gagal karena konfigurasi Xcode Release
diatur untuk menggunakan profil AdHoc dan Cocok menginstal profil AppStore.
+---------------------------------------------------------------+-----------------------------------------------------------------------------+
| Summary for gym 2.112.0 |
+---------------------------------------------------------------+-----------------------------------------------------------------------------+
| scheme | AeroNavMap |
| export_method | app-store |
| export_xcargs | -allowProvisioningUpdates |
| export_options.provisioningProfiles.net.tequilaapps.airnavmap | match AppStore net.tequilaapps.airnavmap |
| workspace | ./PEMap.xcworkspace |
| destination | generic/platform=iOS |
| output_name | AeroNavMap |
| build_path | /Users/vagrant/Library/Developer/Xcode/Archives/2019-01-06 |
| clean | false |
| output_directory | . |
| silent | false |
| skip_package_ipa | false |
| result_bundle | false |
| buildlog_path | /var/folders/90/5stft2v13fb_m_gv3c8x9nwc0000gn/T/fastlane_logs957341986/gym |
| skip_profile_detection | false |
| xcode_path | /Applications/Xcode.app |
+---------------------------------------------------------------+-----------------------------------------------------------------------------+
[13:47:38]: $ set -o pipefail && xcodebuild -workspace ./PEMap.xcworkspace -scheme AeroNavMap -destination 'generic/platform=iOS' -archivePath /Users/vagrant/Library/Developer/Xcode/Archives/2019-01-06/AeroNavMap\ 2019-01-06\ 13.47.38.xcarchive archive | tee /var/folders/90/5stft2v13fb_m_gv3c8x9nwc0000gn/T/fastlane_logs957341986/gym/AeroNavMap-AeroNavMap.log | xcpretty
[13:47:42]: ▸ ❌ error: No profile for team 'XXXXXXXX' matching 'match AdHoc net.tequilaapps.airnavmap' found: Xcode couldn't find any provisioning profiles matching 'G9MA9G2SST/match AdHoc net.tequilaapps.airnavmap'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor. (in target 'AeroNavMap')
[13:47:42]: ▸ ** ARCHIVE FAILED *
Ini semua masuk akal tetapi pertanyaannya adalah bagaimana saya bisa mengatur Xcode sehingga saya dapat memiliki dua jalur Fastlane, satu untuk membangun AppStore, yang lain untuk AdHoc.
Saya bisa membuat konfigurasi Xcode baru AppStore
di mana saya akan mengatur profil penyediaan AppStore tetapi ini menimbulkan masalah lain ketika Kerangka kerja khusus saya tidak dibuat. mirip dengan pertanyaan ini. Saya memiliki banyak Kerangka kerja khusus dan saya perlu membuat konfigurasi AppStore
yang sama di proyek Xcode mereka juga, tetapi itu merupakan solusi peretasan yang terlalu berlebihan.
Saya mencoba memaksa gym
untuk menggunakan profil AppStore sebagai berikut tetapi itu tidak membantu. Profil AdHoc yang disetel di Xcode masih digunakan.
desc "Builds the app for the AppStore"
lane :build_appstore do
match(type: "appstore", readonly: true)
build_app(
scheme: "AeroNavMap",
export_method: "app-store",
skip_profile_detection: true,
export_options: { provisioningProfiles: { "net.tequilaapps.airnavmap" => "match AppStore net.tequilaapps.airnavmap"}}
)
end
Solusi saya saat ini adalah memperbarui xcodeproj secara manual sebelum membangun tetapi ini juga tidak terlalu bersih
lane :build_appstore do
match(type: "appstore", readonly: true)
if Helper.ci?
UI.message "Patching Xcode proj to use AppStore profile"
`sed -i.bak -e 's/match AdHoc net.tequilaapps.airnavmap/match AppStore net.tequilaapps.airnavmap/g' ../PEMap/PEMap.xcodeproj/project.pbxproj`
end
build_app(scheme: "AeroNavMap", export_method: "app-store")
end