2012-10-19 6 views
17

애플의 아이폰 OS 개발자 지침 상태 :AppStore/iOS 앱 및 해석 코드 - 어디에서 선을 그립니다.

3.3.2 - 자체 설치하거나 다른 프레임 워크를 호출, 플러그인 아키텍처의 사용을 통해 제한없이 포함하여, 어떤 방법으로 다른 실행 코드가 실행되지 수있는 응용 프로그램, 다른 API 또는 기타. Apple의 문서화 된 API 및 내장 된 인터프리터가 해석하여 실행하는 코드를 제외하고는 응용 프로그램에서 해석 된 코드를 다운로드하거나 사용할 수 없습니다.

데이터 다운로드한다고 가정하면 - 예를 들어 같은 XML 및 이미지, 게임 수준의 설명 - (? 내 인상으로) 실행시하는 것은 허용된다 그들이 선 사이를 그릴 경우, 궁금 "데이터"및 "코드". 대화 형 '프리젠 테이션'을 사용자에게 제공하는 앱 시나리오 (예 : 설문 조사 등)를 묘사하십시오. 프리젠 테이션은 지속적으로 서버에 추가되고 다양한 프리젠 테이션이 다른 사용자에게 제공되므로 초기 앱 다운로드에 포함될 수 없습니다 (전체 포인트가 될 수 있음). (예시하는 의사 양식 참조) 그들은 XML 형식으로 설명되어 있지만, 대화 형되고, 그들은 이런 종류의 조건 분기를 포함 할 수 있습니다

이 XML 해석하고, 응용 프로그램 내 위를 "재생"되는
<options id="Gender"> 
    <option value="1">Male</option> 
    <option value="2">Female</option> 
</options> 

<branches id="Gender"> 
    <branch value="1"> 
     <image src="Man" /> 
    </branch> 
    <branch value="2"> 
     <image src="Woman" /> 
    </branch> 
</branches> 

두 단계로 표시됩니다. 처음에는 사용자가 두 가지 선택 사항 ("남성"또는 "여성") 중 하나를 클릭 할 수있는 선택 화면이 표시됩니다. 그런 다음 이미지가 [동적으로 다운로드되고] 이전 단계에서 선택한 선택에 따라 표시됩니다.

지금부터는 추가 태그를 상상하기 쉽습니다. 로직을 계속 설명합니다. 예를 들면, 포함 된 태그가 추가 될 수있다 :

<loop count="3"> 

    <options... /> 
    <branches... /> 

</loop> 

결과 여기 선택 화면/화상 화면 쌍이 순차적 물론, 세 번 이상 제공 될 것 인.

게임에서 레벨의 을 설명하는 일부 형식을 상상해보십시오. 그것은 아마도 수동적 인 "데이터"로 보는 것이 자연스럽지 만, 사용자가 통과 할 수있는 여러 출입구, 다양한 트리거, 트랩 및 포인트 등이 첨부되어있는 경우 - 스크립트 (또는 실제로 해석 된 코드) - 실행 순서, 옵션 및 해당 조건부 응답을 설명합니다.

데이터에 대한 해석 엔진이 이미 앱에 있고 이러한 '프리젠 테이션'을 앱에서만 사용할 수 있다고 가정하면 (작성 또는 수정하지 않은 경우), Apple의 iOS 가이드 라인과 비교했을 때 어떻게됩니까? XML은 기본적으로 이러한 의미에서 스크립팅 언어를 구성하지는 않습니다 (해석 된 언어로 된 프로그램을 XML로 기술 할 수 없습니까?).

독점 스크립팅 언어 (위에서 사용한 XML 참조)가 엄격하게 샌드 박싱 된 경우 (어떻게 알 수 있습니까?) 어떤 방식 으로든 운영 체제에 액세스 할 수는 없지만 (예 : 설문 조사 또는 게임 레벨 - 동적으로 결과뿐만 아니라 업로드 결과 - 답변 또는 점수 - 작성 서버)?

어디로 이동합니까?

+0

정확하게 알 수 없습니다. 애플 만이 그것을 알고있다. See, Codea는 임베디드 루아 인터프리터를 사용하고 사용자가 코드를 작성하게하여 필터를 성공적으로 통과하도록합니다. –

+0

흥미 롭습니다. 필자는 사용자가 코드를 로컬에서 작성/편집 할 수있는 것보다 새로운 "프리젠 테이션"("스크립트")을 다운로드 할 수있는 능력에 더 관심이 있지만. – d7samurai

+0

나는 사용자가 자유롭게 모든 코드를 실행할 수 있다고 믿는다. 그래서 당신의 앱은 받아 들여지지 않는 것보다 더 큰 기회를 가졌지 만, 누가 알겠습니까? –

답변

0

당신의 응용 프로그램이 다른 모듈, 컴파일 된 제품 또는 실행 파일에 의존해서는 안되며, 웹 사이트/서버에서 다운로드하여 컴파일 된 부가 기능을 Apple에서 검토하지 않았 음을 의미한다고 생각합니다.

기본적으로 비슷한 질문을하면 "내 애플리케이션이 승인되지 않은 이러한 FTP 다운로더, 키 해독 도구 또는 이와 유사한 다른 실행 가능한 컴파일 된 코드를 응용 프로그램에서 다운로드 할 수 있습니다. 응용 프로그램을 나타내지 않는 데이터 또는 파일 (예 : XML, HTML, PDF 파일, 이미지)을 다운로드하십시오.

+0

네, 그렇지만 문제는 "수동 데이터"와 "활성 데이터"사이에서 선이 어디로 이동하는지, 즉 실행 가능한 논리를 나타내는 데이터입니다. 소스 코드도 데이터입니다. 프로그램을 다운로드하여 컴파일하거나 해석하면 실행할 수 있습니다. 이것이 바로 문제입니다. – d7samurai

0

'코드'와 '데이터'의 차이점은 이전에 SO에서 논의되었습니다. 하시기 바랍니다. 이 답변을 참조하십시오 : https://stackoverflow.com/a/642476/200696

Apple의 관점에서 볼 때,이 금지는 앱 스토어의 검토되지 않은 실행 가능 콘텐츠를 차단합니다. Apple에 의해 승인 된 프로그램을 작성한 다음 사전 승인 된 동작을 변경하는 실행 가능 컨텐츠를 다운로드하는 것은 사소한 일입니다.

+0

여기에있는 문제는 '코드'와 '데이터'의 차이가 아니지만 특히 Apple이 AppStore의 맥락에서 그 선을 그려 놓은 곳입니다. 또한 앱이 앱 자체에서 '실행'할 수있는 데이터 (즉, 기본적으로 또는 독립적으로 실행 가능한 콘텐츠가 아님)를 앱이 다운로드하는 상황과 관련이 있습니다. PowerPoint 프리젠 테이션을 필요할 때마다 (예 : 내장 된 분기 논리의 기능을 추가하여) 다운로드하고 각 프레젠테이션에 새로운 '사용자 경험'을 만들어내는 'PowerPoint'와 같은 응용 프로그램을 상상해보십시오. – d7samurai

1

App Review 팀의 가이드 라인과 실제 연습 간에는 큰 차이가 있습니다.

현재의 가이드 라인 상태

: 어떤 방법으로 코드를 다운로드하거나 형태가 다른 실행 코드를 설치하거나 실행

2.8 애플 리케이션을 거부됩니다

2.7 어플리케이션은 등록이 거절 될 것입니다

따라서 오래된 인터프리터 코드 금지는 사라졌으며 IDE 또는 자체 수정으로 간주 될 수있는 앱 금지로 대체되었습니다.

그러나 실제로는 이렇게하는 응용 프로그램이 많으므로, theoria와 praxis의 차이점이 있습니다.

0

나는 XML을 사용하여 응용 프로그램 내에서 동작을 스크립트로 작성한 제품을 발표했으며 Apple은 항상이를 승인했습니다.

1

애플은 enabled in iOS7이 무엇인지 살펴 봐야합니다. 이제 앱 내에서 자바 스크립트를 다운로드하고 실행할 수 있습니다. Codea 등 아래에서 설명하는 도구를 프로그래밍

2

업데이트 WWDC 2017

의로 지금은 명시 적으로 코드를 다운로드 할 수 있습니다. App Store Guidelines는 현재 말 (강조 광산) :

2.5.2 앱은 자체에 포함 된 자신의 번들에 있어야하고, 읽거나 지정된 컨테이너 영역 외부에 데이터를 쓸 수 없으며 다운로드 수, 설치하거나 실행하지 않을 수 있습니다 코드 (다른 앱 포함). 실행 코드를 교육, 개발 또는 테스트하도록 설계된 앱은 제한된 경우 해당 코드가 다른 목적으로 사용되지 않는다면 코드를 다운로드 할 수 있습니다. 이러한 응용 프로그램은 응용 프로그램에서 제공하는 소스 코드를 사용자가 완전히보고 편집 할 수 있도록해야합니다.

완화 된 조항에 대한 자세한 내용은 this tweet입니다. 원래

는 해석 다운로드는 사용자가 무한 루프 또는 재귀를 작성할 수 있습니까?

애플은 인터프리터를 제공하고 코드를 죽일 수 있기 때문에 자바 스크립트를 허용합니다.나는 그것이 10 초의 한도 인 것을 읽었다라고하는 감각을 가지고있다. 그러나 나는 검색하고있는 약간의 분과 함께 사이트에서 그것을 발견 할 수 없었다. (예, 답장 쓰기에 대한 자체 제한 시간 초과)

당신이하는 일이 선언적이고 통역사에서 명백한 루핑을 허용하지 않는다면 당신은 꽤 안전하다고 생각합니다.

공개 토론을 포함하여 Apple이 볼 수있는 설명에 "interpreter"라는 단어를 사용하지 마십시오. 어쩌면 "파서"가 더 안전 할 수도 있습니다.

Codea는 Lua 환경에서 이러한 정의의 가장자리를 따라 스케이트를 타며 코드를 다운로드 할 수 없습니다. 새 패키지를 ".codea"파일로 다운로드하는 경우 had to remove a feature입니다.

2

3.3.2에 기반하여 앱에서이를 거부 할 수 있습니다. 그러나, 더 무서운 것은 당신이 앱을 만들 수 있고, 승인을 받고, 많은 사용자들이 그것을 다운로드하여 사용하게하고, 애플이 스토어에서 앱을 가져올 수 있다는 것입니다.

설명한 앱을 게시 한 적이 있습니까?

관련 문제