xcode and itc submission topics

23
Xcode and iTC submission topics @ikesyo 関西モバイルアプリ研究会 #8, 2015)11)30 Mon #関モバ

Upload: syo-ikeda

Post on 14-Apr-2017

535 views

Category:

Engineering


1 download

TRANSCRIPT

Xcode&and&iTC&submission&topics@ikesyo

関西モバイルアプリ研究会!#8,!2015)11)30!Mon

#関モバ

@ikesyo

!ikesyo_nnid

いけしょー/池田翔京都でフリーランスのiOSエンジニア(時々Android)しています

フリュー㈱のモバイル開発のチームにジョイン中。

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

Version(number(ofembedded%frameworks

• Xcode'7.1のリリース直後、アプリのバリデーションでエラー

• フレームワークのバージョンが前回リリース時のアプリのバージョン番号より上でなければならない(かつアプリのバージョンと一致?)!"!

• 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

CFBundleSupportedPla0ormsin#Info.plist#of#a#framework

• 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

• 近々修正予定です。)"

UIRequiredDeviceCapabili2esfor$tvOS$frameworks

• UIRequiredDeviceCapabili3es

• アプリの動作に必要なデバイスの機能を指定するためのキー(フレームワークとは直接の関係はない)

• gps

• accelerometer

• bluetooth:le

• telephony

• arm64

などなど

• iOSADeviceACompa3bilityAReferenceA:ADeviceACompa3bility

• tvOS&needs&required&device&capabili4es&to&include&'arm64'&:&Issue&#916&:&Alamofire/Alamofire

• tvOS用のフレームワークではフレームワーク側でも&

UIRequiredDeviceCapabilities&に&arm64&を指定する必要がある模様。&!

• tvOSアプリ申請経験者の情報を求ム。&"

-destination!se$ngto#build#for#simulator#SDKs

• 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

CODE_SIGNING_REQUIRED,AD_HOC_CODE_SIGNING_ALLOWED

build&se)ngs

• おまけ話です。

• 元ネタはこれ

• 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:#コード署名周りの問題に悩まされることをなくすことができるかもしれない。

!!Happy%Xcoding!!!!

Thank&you❗"