34. Appleのガイドラインを振り返る
2.7 Apps that download code in any way or form will be rejected
2.8 Apps that install or launch other executable code will be
rejected
App Store Review Guidelines (2015)
35. Appleのガイドラインを振り返る
2.7 Apps that download code in any way or form will be rejected
2.8 Apps that install or launch other executable code will be
rejected
App Store Review Guidelines (2015)
36. Appleのガイドラインを振り返る
2.5.2 Apps should be self-contained in their bundles, and may
not read or write data outside the designated container area,
nor may they download, install, or execute code which
introduces or changes features or functionality of the app,
including other apps. (抜粋)
App Store Review Guidelines (2016)
37. Appleのガイドラインを振り返る
2.5.2 Apps should be self-contained in their bundles, and may
not read or write data outside the designated container area,
nor may they download, install, or execute code which
introduces or changes features or functionality of the app,
including other apps. (抜粋)
App Store Review Guidelines (2016)
38. Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
39. Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
40. Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
41. Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
44. 現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
45. 現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
46. 現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
47. 現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
48. 現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
53. 同様のサービスは??
“This includes any code which passes arbitrary parameters to
dynamic methods such as dlopen(), dlsym(), respondsToSelector:,
performSelector:, method_exchangeImplementations(), and
running remote scripts in order to change app behavior or call
SPI, based on the contents of the downloaded script. Even if the
remote resource is not intentionally malicious, it could easily be
hijacked via a Man In The Middle (MiTM) attack, which can pose a
serious security vulnerability to users of your app.”
https://forums.developer.apple.com/thread/73640
54. 同様のサービスは??
“This includes any code which passes arbitrary parameters to
dynamic methods such as dlopen(), dlsym(), respondsToSelector:,
performSelector:, method_exchangeImplementations(), and
running remote scripts in order to change app behavior or call
SPI, based on the contents of the downloaded script. Even if the
remote resource is not intentionally malicious, it could easily be
hijacked via a Man In The Middle (MiTM) attack, which can pose a
serious security vulnerability to users of your app.”
https://forums.developer.apple.com/thread/73640
55. 同様のサービスは??
“This includes any code which passes arbitrary parameters to
dynamic methods such as dlopen(), dlsym(), respondsToSelector:,
performSelector:, method_exchangeImplementations(), and
running remote scripts in order to change app behavior or call
SPI, based on the contents of the downloaded script. Even if the
remote resource is not intentionally malicious, it could easily be
hijacked via a Man In The Middle (MiTM) attack, which can pose a
serious security vulnerability to users of your app.”
https://forums.developer.apple.com/thread/73640
73. 2. App Center CLIをインストール
$ appcenter login
?
Opening your browser...?
? Visit https://appcenter.ms/cli-login?hostname=xxx.local and
enter the code:?
? Access code from browser:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Logged in as xxxxxxxx
74. 2. App Center CLIをインストール
$ appcenter codepush deployment list -a <ORG>/<APP>?
!""""""""""""#"""""""""""""""""""""""""""""""""""""""$?
% Name % Key %?
&""""""""""""'"""""""""""""""""""""""""""""""""""""""(?
% Staging % xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx %?
&""""""""""""'"""""""""""""""""""""""""""""""""""""""(?
% Production % xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx %?
)""""""""""""*"""""""""""""""""""""""""""""""""""""""+
77. 3. React Native Client SDKをインストール
$ react-native link react-native-code-push
...
? What is your CodePush deployment key for Android (hit <ENTER>
to ignore)
...
? What is your CodePush deployment key for iOS (hit <ENTER> to
ignore)