xcode and itc submission topics
TRANSCRIPT
✨!Contribu*ons!✨
• Himotoki
• Reac,veCocoa
• Carthage
• APIKit
• Result
• AMScrollingNavbar
Today's(Topics1. Version*number*of*embedded*frameworks
2. CFBundleSupportedPla<orms*in*Info.plist*of*a*framework
3. UIRequiredDeviceCapabiliEes*for*tvOS*frameworks
4. -destination*seHng*to*build*for*simulator*SDKs
5. CODE_SIGNING_REQUIRED,*AD_HOC_CODE_SIGNING_ALLOWED*build*seHngs
• Xcode'7.1のリリース直後、アプリのバリデーションでエラー
• フレームワークのバージョンが前回リリース時のアプリのバージョン番号より上でなければならない(かつアプリのバージョンと一致?)!"!
• 翌日にはiTC側が修正されました。%!
• "%iTunes%Connect%breaks%Carthage%frameworks%for%yet%another%reason%"%7%Issue%#859%7%Carthage/Carthage
• Technical%Note%TN2420:%Version%Numbers%and%Build%Numbers
• Xcode'7.1のリリース直後、アプリのバリデーションでもう1つエラー
• フレームワークのバージョン番号(CFBundleShortVersionString)がx.y.zの形式じゃないとエラー!(!
• 主にCocoaPods界隈で問題になっている(修正版はまだ未リリース:*おそらく0.39.1)*!
• Uploads*to*iTunes*Connect*fail*when*pods'*Info.plist*versions*do*not*conform*to*%d.%d.%d*format*B*Issue*#4421*B*CocoaPods/CocoaPods
• [InfoPlistFile]*Ensure*the*version*string*is*exactly*three*dotNseparated*numbers*by*segiddins*B*Pull*Request*#4444*B*CocoaPods/CocoaPods
• CFBundleSupportedPla1orms
• ダイナミックフレームワークのInfo.plistに含まれている
• iPhoneOS,;iPhoneSimulator,;AppleTVOS,;AppleTVSimulatorなど
• シミュレーターの値を含むフレームワークだとアプリのバリデーションでエラー;!
• Apple;does;not;allow;submiAng;Apple;TV;apps;with;frameworks;that;include;'appletvsimulator';in;SUPPORTED_PLATFORMS;N;Issue;#824;N;Carthage/Carthage
• hTp://www.openradar.me/22967941
• Carthageでのユニバーサルフレームワークの作成で問題が起きている)!
• xcodebuild -showBuildSettings | grep SUPPORTED_PLATFORMS)の並びに違いがある
• iphonesimulator)iphoneos
• watchsimulator)watchos
• appletvos)appletvsimulator
• 近々修正予定です。)"
• UIRequiredDeviceCapabili3es
• アプリの動作に必要なデバイスの機能を指定するためのキー(フレームワークとは直接の関係はない)
• gps
• accelerometer
• bluetooth:le
• telephony
• arm64
などなど
• iOSADeviceACompa3bilityAReferenceA:ADeviceACompa3bility
• tvOS&needs&required&device&capabili4es&to&include&'arm64'&:&IssueΔ&:&Alamofire/Alamofire
• tvOS用のフレームワークではフレームワーク側でも&
UIRequiredDeviceCapabilities&に&arm64&を指定する必要がある模様。&!
• tvOSアプリ申請経験者の情報を求ム。&"
• Xcode'7.2'(現在beta'4)から'-sdk iphonesimulator'などのシミュレーター用ビルドをする場合に'-destination "platform=iOS
Simulator,name=iPhone 6s"'のように'-destination'をセットしないとビルドに失敗するようになった。'!
• watchOS,'tvOSでも同様。
• CIビルドでは要注意。
• Carthage:'masterでは対応済み。
• Specify'desBnaBon'for'simulator'builds'by'ikesyo'G'Pull'Request'#941'G'Carthage/Carthage
• おまけ話です。
• 元ネタはこれ
• Skipping(build(for("macosx"(SDK(because(the(necessary(signing(iden<ty("="(is(not(installed(>(Issue(#897(>(Carthage/Carthage
• Accept(ad(hoc(code(signing(by(ikesyo(>(Pull(Request(#912(>(Carthage/Carthage
• Macフレームワークはコード署名は必須ではない(CODE_SIGNING_REQUIRED(が未設定になっている)が、Xcodeのテンプレートではデフォルトで(CODE_SIGN_IDENTITY="-"が設定されている。
• AD_HOC_CODE_SIGNING_ALLOWED(が(YES(もしくは未設定で(
CODE_SIGN_IDENTITY="-"(の場合、アドホックコード署名(ad(hoc(code(signing)という方法が使用される模様。
• iOS,&watchOS,&tvOSフレームワーク(のデバイスビルド)ではコード署名が必須という認識だった。
• xcodebuild -scheme Himotoki-iOS -showBuildSettings | grep CODE_SIGN
AD_HOC_CODE_SIGNING_ALLOWED = NOCODE_SIGNING_ALLOWED = YESCODE_SIGNING_REQUIRED = YESCODE_SIGN_CONTEXT_CLASS = XCiPhoneOSCodeSignContextCODE_SIGN_IDENTITY = iPhone DeveloperEXPANDED_CODE_SIGN_IDENTITY = EXPANDED_CODE_SIGN_IDENTITY_NAME =
• xcodebuild -scheme Himotoki-iOS -showBuildSettings -sdk iphonesimulator | grep CODE_SIGN
AD_HOC_CODE_SIGNING_ALLOWED = NOCODE_SIGNING_ALLOWED = NOCODE_SIGN_CONTEXT_CLASS = XCiPhoneSimulatorCodeSignContextEXPANDED_CODE_SIGN_IDENTITY = EXPANDED_CODE_SIGN_IDENTITY_NAME =
• しかし、以下の組み合わせのどちらでもデバイスビルドができることを確認
• AD_HOC_CODE_SIGNING_ALLOWED=YES,#CODE_SIGN_IDENTITY="-"
• CODE_SIGNING_REQUIRED=NO,#CODE_SIGN_IDENTITY=""
• Travis#CI,#CircleCIなどCI環境でプロビジョニングプロファイルなしでデバイスビルドを行える可能性。
• Carthage:#コード署名周りの問題に悩まされることをなくすことができるかもしれない。