나는 내 자신의 VAR
나는 따옴표를 탈출 쉘했다에게 전달하는 GCC_PREPROCESSOR_DEFINITIONS
같은 것을 사용하여 기억한다. 내 fastlane 빌드 파일에 그것을 코딩 끝.
tmp_other_flags = {
GCC_PREPROCESSOR_DEFINITIONS: '"DISABLE_PUSH_NOTIFICATIONS=1"',
TARGETED_DEVICE_FAMILY: '1',
DEBUG: '1'
}
other_flags = tmp_other_flags.map do |k, v|
"#{k.to_s.shellescape}=#{v.shellescape}"
end.join ' '
puts "___ Custom Flags also know as xcargs:"
puts other_flags
gym(
clean: true,
silent: false,
project: proj_xcodeproj_file,
archive_path: "build-ios-xcarchive",
destination: 'generic/platform=iOS',
use_legacy_build_api: true,
output_directory: 'build-ios',
output_name: "MyApp.ipa",
export_method: 'ad-hoc',
codesigning_identity: 'iPhone Distribution: company (12345)',
provisioning_profile_path: './dl_profile_com.company.myapp.iphone.prod_ad_hoc.mobileprovision',
scheme: 'MyApp',
configuration: 'Debug',
xcargs: other_flags
)
가까지이 같은 쉘 뭔가 호출하기 끝났다 :
는 루비에이처럼 보였다
set -o pipefail && xcodebuild -scheme 'MyApp' -project 'platforms/ios/MyApp.xcodeproj' -configuration 'Debug' -destination 'generic/platform=iOS' -archivePath 'build-ios-xcarchive.xcarchive' GCC_PREPROCESSOR_DEFINITIONS=\"DISABLE_PUSH_NOTIFICATIONS\=1\" TARGETED_DEVICE_FAMILY=1 DEBUG=1 clean archive CODE_SIGN_IDENTITY='iPhone Distribution: My Company (Blah)' | tee '/Users/andxyz/Library/Logs/gym/MyApp-MyApp.log' | xcpretty
xcodebuild - how to define preprocessor macro?
그래서, 아마도 당신이 당길 수있는 당신의 fastlane 내부에서 루비를 사용하는 자신의 환경 변수.예를 들어, 환경에 액세스 할 수 GCC_PREPROCESSOR_DEFINITIONS
섹션으로
루비 리셀러 (VAR)를 추가하여 :
ENV.fetch('TERM_PROGRAM') #returns "iTerm.app" on my machine
그래서 위의와 함께 다음
tmp_other_flags = {
GCC_PREPROCESSOR_DEFINITIONS: "MY_VARIABLE=#{ENV.fetch('MY_VARIABLE')}" ,
TARGETED_DEVICE_FAMILY: '1',
DEBUG: '1'
}
HTH
는 빌드하는 동안이 방출 [: ad_hoc, 청소 : 사실, xcargs "GCC_PREPROCESSOR_DEFINITIONS의 = '$ GIT_BRANCH = # {지점} {상속}'" ' 는 지금까지 NSProcessInfo''로 액세스 런타임 변수가 내가 맹세 할 수 있기 )이 있었다 방법 그러나 그것을 찾을 수없는 것 – tapi
이것은 "필자가 발견 한 유일한 능력은 Info.plist로 출력하고 거기에서 정보를 가져올 수있는 사용자 정의 빌드 설정을 전달하는 것입니다."라고 언급 한 메커니즘입니다. Fastfile 내부에서 xcargs 매개 변수를 사용했지만 어쨌든 xcargs에 전달한 것이 환경 변수 였고 전처리 매크로에서만 액세스 할 수있는 것이 아닙니다. –