Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Xcode&and&iTC&submission&topics
@ikesyo
関西モバイルアプリ研究会!#8,!2015)11)30!Mon
#関モバ
@ikesyo
!ikesyo_nnid
いけしょー/池田翔
京都でフリーランスのiOSエンジニア
(時々Android)しています
フリュー㈱のモバイル開発の
チームにジョイン中。
✨!Contribu*ons!✨
• Himotoki
• Reac,veCocoa
• Carthage
• APIKit
• Result
• AMScrollingNavbar
Today's(Topics
1. Version*number*of*embedded*frameworks
2. CFBundleSupportedPla<orms*in*Info.plist*of*a*framework
3. UIReq...
Version(number(of
embedded%frameworks
• Xcode'7.1のリリース直後、アプリのバリデーションでエラー
• フレームワークのバージョンが前回リリース時のアプリのバー
ジョン番号より上でなければならない(かつアプリのバージョ
ンと一致?)!"!
• 翌日にはiTC側が修正されました。%!
• "%iTunes%Connect%breaks%Carthage%frameworks%for%yet%another%
reason%"%7%Issue%#859%7%Carthage/Cart...
• Xcode'7.1のリリース直後、アプリのバリデーションでもう1つ
エラー
• フレームワークのバージョン番号
(CFBundleShortVersionString)がx.y.zの形式じゃないとエ
ラー!(!
• 主にCocoaPods界隈で問題になっている(修正版はまだ未リリ
ース:*おそらく0.39.1)*!
• Uploads*to*iTunes*Connect*fail*when*pods'*Info.plist*versions*
do*n...
CFBundleSupportedPla0orms
in#Info.plist#of#a#framework
• CFBundleSupportedPla1orms
• ダイナミックフレームワークのInfo.plistに含まれている
• iPhoneOS,;iPhoneSimulator,;AppleTVOS,;AppleTVSimulatorなど
•...
• Carthageでのユニバーサルフレームワークの作成で問題が起き
ている)!
• xcodebuild -showBuildSettings | grep
SUPPORTED_PLATFORMS)の並びに違いがある
• iphonesimu...
UIRequiredDeviceCapabili2es
for$tvOS$frameworks
• UIRequiredDeviceCapabili3es
• アプリの動作に必要なデバイスの機能を指定するためのキー(フレームワークとは
直接の関係はない)
• gps
• accelerometer
• bluetooth:le
• tel...
• tvOS&needs&required&device&capabili4es&to&include&'arm64'&:&Issue&
#916&:&Alamofire/Alamofire
• tvOS用のフレームワークではフレームワーク側でも&...
-destination!se$ng
to#build#for#simulator#SDKs
• Xcode'7.2'(現在beta'4)から'-sdk iphonesimulator'などのシミュレー
ター用ビルドをする場合に'-destination "platform=iOS
Simulator,name=iPhone 6s"'の...
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(#...
• iOS,&watchOS,&tvOSフレームワーク(のデバイスビルド)ではコード署名が必須という認識だった。
• xcodebuild -scheme Himotoki-iOS -showBuildSettings | grep CODE_...
• しかし、以下の組み合わせのどちらでもデバイスビルドができるこ
とを確認
• AD_HOC_CODE_SIGNING_ALLOWED=YES,#
CODE_SIGN_IDENTITY="-"
• CODE_SIGNING_REQUIRED=N...
!!Happy%Xcoding!!!!
Thank&you❗"
Upcoming SlideShare
Loading in …5
×

Xcode and iTC submission topics

関西モバイルアプリ研究会 #8での発表スライドです。

  • Be the first to comment

  • Be the first to like this

Xcode and iTC submission topics

  1. 1. Xcode&and&iTC&submission&topics @ikesyo 関西モバイルアプリ研究会!#8,!2015)11)30!Mon #関モバ
  2. 2. @ikesyo !ikesyo_nnid いけしょー/池田翔 京都でフリーランスのiOSエンジニア (時々Android)しています フリュー㈱のモバイル開発の チームにジョイン中。
  3. 3. ✨!Contribu*ons!✨ • Himotoki • Reac,veCocoa • Carthage • APIKit • Result • AMScrollingNavbar
  4. 4. Today's(Topics 1. 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
  5. 5. Version(number(of embedded%frameworks
  6. 6. • Xcode'7.1のリリース直後、アプリのバリデーションでエラー • フレームワークのバージョンが前回リリース時のアプリのバー ジョン番号より上でなければならない(かつアプリのバージョ ンと一致?)!"!
  7. 7. • 翌日にはiTC側が修正されました。%! • "%iTunes%Connect%breaks%Carthage%frameworks%for%yet%another% reason%"%7%Issue%#859%7%Carthage/Carthage • Technical%Note%TN2420:%Version%Numbers%and%Build%Numbers
  8. 8. • Xcode'7.1のリリース直後、アプリのバリデーションでもう1つ エラー • フレームワークのバージョン番号 (CFBundleShortVersionString)がx.y.zの形式じゃないとエ ラー!(!
  9. 9. • 主に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*dotN separated*numbers*by*segiddins*B*Pull*Request*#4444*B* CocoaPods/CocoaPods
  10. 10. CFBundleSupportedPla0orms in#Info.plist#of#a#framework
  11. 11. • 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
  12. 12. • Carthageでのユニバーサルフレームワークの作成で問題が起き ている)! • xcodebuild -showBuildSettings | grep SUPPORTED_PLATFORMS)の並びに違いがある • iphonesimulator)iphoneos • watchsimulator)watchos • appletvos)appletvsimulator • 近々修正予定です。)"
  13. 13. UIRequiredDeviceCapabili2es for$tvOS$frameworks
  14. 14. • UIRequiredDeviceCapabili3es • アプリの動作に必要なデバイスの機能を指定するためのキー(フレームワークとは 直接の関係はない) • gps • accelerometer • bluetooth:le • telephony • arm64 などなど • iOSADeviceACompa3bilityAReferenceA:ADeviceACompa3bility
  15. 15. • tvOS&needs&required&device&capabili4es&to&include&'arm64'&:&Issue& #916&:&Alamofire/Alamofire • tvOS用のフレームワークではフレームワーク側でも& UIRequiredDeviceCapabilities&に&arm64&を指定する必 要がある模様。&! • tvOSアプリ申請経験者の情報を求ム。&"
  16. 16. -destination!se$ng to#build#for#simulator#SDKs
  17. 17. • 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
  18. 18. CODE_SIGNING_REQUIRED, AD_HOC_CODE_SIGNING_ALLOWED build&se)ngs
  19. 19. • おまけ話です。 • 元ネタはこれ • 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)とい う方法が使用される模様。
  20. 20. • iOS,&watchOS,&tvOSフレームワーク(のデバイスビルド)ではコード署名が必須という認識だった。 • xcodebuild -scheme Himotoki-iOS -showBuildSettings | grep CODE_SIGN AD_HOC_CODE_SIGNING_ALLOWED = NO CODE_SIGNING_ALLOWED = YES CODE_SIGNING_REQUIRED = YES CODE_SIGN_CONTEXT_CLASS = XCiPhoneOSCodeSignContext CODE_SIGN_IDENTITY = iPhone Developer EXPANDED_CODE_SIGN_IDENTITY = EXPANDED_CODE_SIGN_IDENTITY_NAME = • xcodebuild -scheme Himotoki-iOS -showBuildSettings -sdk iphonesimulator | grep CODE_SIGN AD_HOC_CODE_SIGNING_ALLOWED = NO CODE_SIGNING_ALLOWED = NO CODE_SIGN_CONTEXT_CLASS = XCiPhoneSimulatorCodeSignContext EXPANDED_CODE_SIGN_IDENTITY = EXPANDED_CODE_SIGN_IDENTITY_NAME =
  21. 21. • しかし、以下の組み合わせのどちらでもデバイスビルドができるこ とを確認 • AD_HOC_CODE_SIGNING_ALLOWED=YES,# CODE_SIGN_IDENTITY="-" • CODE_SIGNING_REQUIRED=NO,#CODE_SIGN_IDENTITY="" • Travis#CI,#CircleCIなどCI環境でプロビジョニングプロファイルなし でデバイスビルドを行える可能性。 • Carthage:#コード署名周りの問題に悩まされることをなくすことが できるかもしれない。
  22. 22. !!Happy%Xcoding!!!!
  23. 23. Thank&you❗"

×