Issue with app publishing(refused because of private api usage _NDGetEnviron)

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Issue with app publishing(refused because of private api usage _NDGetEnviron)

Kosta Mihajlov

Hi All, 
  We have an issue with publishing our IOS app/s on the store
  we are using the Application Builder to submit the ipa/s. 
the result returned is : 
  The App references non-public symbols in Payload/MediawirePrintStandMobilePresentationMonoTouch.app/PrintStand: _NDGetEnviron

I made a few searches and it seemed to me that if i set the solution to Link SDK Assemblies(currently we don't link anything) it will work:
 This popped up another bug:
2. Due to the fact that we are using:
--compiler:clang++ additional arguments
       the build fails when Link SDK Assemblies only or Link All assemblies is set.

1. If we you have solution how to fix #1 without using linking .we can wait for item no #2.

Thanks, 
   Costa


_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Sebastien Pouliot
On Wed, May 1, 2013 at 5:24 AM, Kosta Mihajlov <[hidden email]> wrote:

Hi All, 
  We have an issue with publishing our IOS app/s on the store
  we are using the Application Builder to submit the ipa/s. 
the result returned is : 
  The App references non-public symbols in Payload/MediawirePrintStandMobilePresentationMonoTouch.app/PrintStand: _NDGetEnviron
This is not a symbol that comes from Xamarin.iOS. It likley comes from a static library you're linking your application against.
 
I made a few searches and it seemed to me that if i set the solution to Link SDK Assemblies(currently we don't link anything) it will work:

Link SDK is the default and there are several reasons for this. I'll give you a link to my Evolve talk as soon as it's published.
 
 This popped up another bug:
2. Due to the fact that we are using:
--compiler:clang++ additional arguments
       the build fails when Link SDK Assemblies only or Link All assemblies is set.
That's surprising. Managed linking happens before native compilation. Can you file a bug report[1]  with the details ? including the version of Xamarin.iOS you're using and the exact error you get while building.

 Sebastien

1. If we you have solution how to fix #1 without using linking .we can wait for item no #2.

Thanks, 
   Costa


_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch



_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Kosta Mihajlov
Except for the native bindings, the only external library we are using it Newtonsoft.json(portable)
Our shared code is in a form of a portable libraries. is there a chance for Newtonsoft.json to be the problematic one?
Thanks,
   Costa

Thanks, 
   Costa

On May 1, 2013, at 2:03 PM, Sebastien Pouliot <[hidden email]> wrote:

On Wed, May 1, 2013 at 5:24 AM, Kosta Mihajlov <[hidden email]> wrote:

Hi All, 
  We have an issue with publishing our IOS app/s on the store
  we are using the Application Builder to submit the ipa/s. 
the result returned is : 
  The App references non-public symbols in Payload/MediawirePrintStandMobilePresentationMonoTouch.app/PrintStand: _NDGetEnviron
This is not a symbol that comes from Xamarin.iOS. It likley comes from a static library you're linking your application against.
 
I made a few searches and it seemed to me that if i set the solution to Link SDK Assemblies(currently we don't link anything) it will work:

Link SDK is the default and there are several reasons for this. I'll give you a link to my Evolve talk as soon as it's published.
 
 This popped up another bug:
2. Due to the fact that we are using:
--compiler:clang++ additional arguments
       the build fails when Link SDK Assemblies only or Link All assemblies is set.
That's surprising. Managed linking happens before native compilation. Can you file a bug report[1]  with the details ? including the version of Xamarin.iOS you're using and the exact error you get while building.

 Sebastien

1. If we you have solution how to fix #1 without using linking .we can wait for item no #2.

Thanks, 
   Costa


_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch




_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Nic Wise
According to the Unity docs (they use Mono, too)

http://forum.unity3d.com/threads/54355-_NSGetEnviron-App-Rejected-Version-3-0

"_NSGetEnviron is used by the Mono runtime to provide an
implementation of the .NET core API method:
Environment.GetEnvironmentVariable()."

"In order for us to solve this problem we simply removed any calls to
_NSGetEnviron and exc_server. Update Unity iPhone 1.5.1 was sent out
to developers days ago. Most of them have already resubmitted their
Apps to the AppStore with the functions removed. Unity iPhone 1.5.1
will go live this week."
--posted November 2009

I would venture a guess that you built your app with something earlier
than unity 1.5.1. Is this the case? If so, perhaps you should rebuild
with Unity 1.7 and resubmit.

----------

which version of Xamarin.iOS are you using, 'cos that post is nearly 3
years old? I assume you are calling Environment.GetEnvironmentVariable
somewhere? MAybe it's been fixed in a newer version of Xam.iOS?

Sebastien (or Rolf) is the right person to fix it tho, as far as I know.

N




On 2 May 2013 11:15, Kosta Mihajlov <[hidden email]> wrote:

> Except for the native bindings, the only external library we are using it
> Newtonsoft.json(portable)
> Our shared code is in a form of a portable libraries. is there a chance for
> Newtonsoft.json to be the problematic one?
> Thanks,
>    Costa
>
> Thanks,
>    Costa
>
> On May 1, 2013, at 2:03 PM, Sebastien Pouliot <[hidden email]> wrote:
>
> On Wed, May 1, 2013 at 5:24 AM, Kosta Mihajlov <[hidden email]> wrote:
>>
>>
>> Hi All,
>>   We have an issue with publishing our IOS app/s on the store
>>   we are using the Application Builder to submit the ipa/s.
>> the result returned is :
>>   The App references non-public symbols in
>> Payload/MediawirePrintStandMobilePresentationMonoTouch.app/PrintStand:
>> _NDGetEnviron
>
> This is not a symbol that comes from Xamarin.iOS. It likley comes from a
> static library you're linking your application against.
>
>>
>> I made a few searches and it seemed to me that if i set the solution to
>> Link SDK Assemblies(currently we don't link anything) it will work:
>
>
> Link SDK is the default and there are several reasons for this. I'll give
> you a link to my Evolve talk as soon as it's published.
>
>>
>>  This popped up another bug:
>> 2. Due to the fact that we are using:
>> --compiler:clang++ additional arguments
>>        the build fails when Link SDK Assemblies only or Link All
>> assemblies is set.
>
> That's surprising. Managed linking happens before native compilation. Can
> you file a bug report[1]  with the details ? including the version of
> Xamarin.iOS you're using and the exact error you get while building.
>
>  Sebastien
>
> [1] http://bugzilla.xamarin.com
>>
>> 1. If we you have solution how to fix #1 without using linking .we can
>> wait for item no #2.
>>
>> Thanks,
>>    Costa
>>
>>
>>
>> _______________________________________________
>> MonoTouch mailing list
>> [hidden email]
>> http://lists.ximian.com/mailman/listinfo/monotouch
>>
>
>
>
> _______________________________________________
> MonoTouch mailing list
> [hidden email]
> http://lists.ximian.com/mailman/listinfo/monotouch
>



--
Nic Wise
t.  +44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/
_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Sebastien Pouliot
Except for the native bindings, the only external library we are using it Newtonsoft.json(portable)

Except ? why ?

>>  It likley comes from a static library you're linking your application against.

Native bindings will both provide (new) symbols and link to (existing) symbols. 

Run `nm` on your static libraries (.a) to find the symbols.

Our shared code is in a form of a portable libraries. is there a chance for Newtonsoft.json to be the problematic one?

I doubt it - but if you have the source (or you can easily find it) then you can check if there are some [DllImport] for that symbol.

According to the Unity docs (they use Mono, too)

It might be a typo but... NDGetEnviron (the symbol mentioned earlier) != NSGetEnviron (the symbol mentioned in unity thread)

In any case NSGetEnviron is not a symbol used by Xamarin.iOS (e.g. for Environment.*). So it's coming from somewhere else and need to be found.

Sebastien


On Thu, May 2, 2013 at 6:35 AM, Nic Wise <[hidden email]> wrote:
According to the Unity docs (they use Mono, too)

http://forum.unity3d.com/threads/54355-_NSGetEnviron-App-Rejected-Version-3-0

"_NSGetEnviron is used by the Mono runtime to provide an
implementation of the .NET core API method:
Environment.GetEnvironmentVariable()."

"In order for us to solve this problem we simply removed any calls to
_NSGetEnviron and exc_server. Update Unity iPhone 1.5.1 was sent out
to developers days ago. Most of them have already resubmitted their
Apps to the AppStore with the functions removed. Unity iPhone 1.5.1
will go live this week."
--posted November 2009

I would venture a guess that you built your app with something earlier
than unity 1.5.1. Is this the case? If so, perhaps you should rebuild
with Unity 1.7 and resubmit.

----------

which version of Xamarin.iOS are you using, 'cos that post is nearly 3
years old? I assume you are calling Environment.GetEnvironmentVariable
somewhere? MAybe it's been fixed in a newer version of Xam.iOS?

Sebastien (or Rolf) is the right person to fix it tho, as far as I know.

N




On 2 May 2013 11:15, Kosta Mihajlov <[hidden email]> wrote:
> Except for the native bindings, the only external library we are using it
> Newtonsoft.json(portable)
> Our shared code is in a form of a portable libraries. is there a chance for
> Newtonsoft.json to be the problematic one?
> Thanks,
>    Costa
>
> Thanks,
>    Costa
>
> On May 1, 2013, at 2:03 PM, Sebastien Pouliot <[hidden email]> wrote:
>
> On Wed, May 1, 2013 at 5:24 AM, Kosta Mihajlov <[hidden email]> wrote:
>>
>>
>> Hi All,
>>   We have an issue with publishing our IOS app/s on the store
>>   we are using the Application Builder to submit the ipa/s.
>> the result returned is :
>>   The App references non-public symbols in
>> Payload/MediawirePrintStandMobilePresentationMonoTouch.app/PrintStand:
>> _NDGetEnviron
>
> This is not a symbol that comes from Xamarin.iOS. It likley comes from a
> static library you're linking your application against.
>
>>
>> I made a few searches and it seemed to me that if i set the solution to
>> Link SDK Assemblies(currently we don't link anything) it will work:
>
>
> Link SDK is the default and there are several reasons for this. I'll give
> you a link to my Evolve talk as soon as it's published.
>
>>
>>  This popped up another bug:
>> 2. Due to the fact that we are using:
>> --compiler:clang++ additional arguments
>>        the build fails when Link SDK Assemblies only or Link All
>> assemblies is set.
>
> That's surprising. Managed linking happens before native compilation. Can
> you file a bug report[1]  with the details ? including the version of
> Xamarin.iOS you're using and the exact error you get while building.
>
>  Sebastien
>
> [1] http://bugzilla.xamarin.com
>>
>> 1. If we you have solution how to fix #1 without using linking .we can
>> wait for item no #2.
>>
>> Thanks,
>>    Costa
>>
>>
>>
>> _______________________________________________
>> MonoTouch mailing list
>> [hidden email]
>> http://lists.ximian.com/mailman/listinfo/monotouch
>>
>
>
>
> _______________________________________________
> MonoTouch mailing list
> [hidden email]
> http://lists.ximian.com/mailman/listinfo/monotouch
>



--
Nic Wise
t.  <a href="tel:%2B44%207788%20592%20806" value="+447788592806">+44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/


_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Nic Wise
> It might be a typo but... NDGetEnviron (the symbol mentioned earlier) !=
> NSGetEnviron (the symbol mentioned in unity thread)
>
> In any case NSGetEnviron is not a symbol used by Xamarin.iOS (e.g. for
> Environment.*). So it's coming from somewhere else and need to be found.

It wasn't a typo - it was just a screw up on my part.

I googled for "_NDGetEnviron", but google returns _NSGetEnviron

The only other occurance of _NDGetEnviron is... this thread. Nearly
GoogleWhacked!

As to if Kosta mistyped it in the first place, I dont know :)

--
Nic Wise
t.  +44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/
_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Sebastien Pouliot
Hey Nic,

I meant typo in the original email :-)

It's hard to say why Apple would dislike something prefixed with ND* and D and S are close friends (on most keyboards)

Sebastien


On Thu, May 2, 2013 at 9:30 AM, Nic Wise <[hidden email]> wrote:
> It might be a typo but... NDGetEnviron (the symbol mentioned earlier) !=
> NSGetEnviron (the symbol mentioned in unity thread)
>
> In any case NSGetEnviron is not a symbol used by Xamarin.iOS (e.g. for
> Environment.*). So it's coming from somewhere else and need to be found.

It wasn't a typo - it was just a screw up on my part.

I googled for "_NDGetEnviron", but google returns _NSGetEnviron

The only other occurance of _NDGetEnviron is... this thread. Nearly
GoogleWhacked!

As to if Kosta mistyped it in the first place, I dont know :)

--
Nic Wise
t.  <a href="tel:%2B44%207788%20592%20806" value="+447788592806">+44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/


_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Kosta Mihajlov
Sorry for the late response guys, 
   Yes, there is a typo in the email , 
   I run nm on the libs we are binding in the project, and i found that it uses this symbol     __NSGetEnviron. This is a closed source pdf library i'm using, can we make something about it so we are able to publish?

Thanks,
   Costa
  
On May 2, 2013, at 3:32 PM, Sebastien Pouliot <[hidden email]> wrote:

Hey Nic,

I meant typo in the original email :-)

It's hard to say why Apple would dislike something prefixed with ND* and D and S are close friends (on most keyboards)

Sebastien


On Thu, May 2, 2013 at 9:30 AM, Nic Wise <[hidden email]> wrote:
> It might be a typo but... NDGetEnviron (the symbol mentioned earlier) !=
> NSGetEnviron (the symbol mentioned in unity thread)
>
> In any case NSGetEnviron is not a symbol used by Xamarin.iOS (e.g. for
> Environment.*). So it's coming from somewhere else and need to be found.

It wasn't a typo - it was just a screw up on my part.

I googled for "_NDGetEnviron", but google returns _NSGetEnviron

The only other occurance of _NDGetEnviron is... this thread. Nearly
GoogleWhacked!

As to if Kosta mistyped it in the first place, I dont know :)

--
Nic Wise
t.  <a href="tel:%2B44%207788%20592%20806" value="+447788592806">+44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/



_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Rolf Bjarne Kvinge
Hi,

On Tue, May 7, 2013 at 1:15 PM, Kosta Mihajlov <[hidden email]> wrote:
Sorry for the late response guys, 
   Yes, there is a typo in the email , 
   I run nm on the libs we are binding in the project, and i found that it uses this symbol     __NSGetEnviron. This is a closed source pdf library i'm using, can we make something about it so we are able to publish?

You must talk with the provider of that library, and they will have to fix it.

Best regards,
Rolf 

Thanks,
   Costa
  
On May 2, 2013, at 3:32 PM, Sebastien Pouliot <[hidden email]> wrote:

Hey Nic,

I meant typo in the original email :-)

It's hard to say why Apple would dislike something prefixed with ND* and D and S are close friends (on most keyboards)

Sebastien


On Thu, May 2, 2013 at 9:30 AM, Nic Wise <[hidden email]> wrote:
> It might be a typo but... NDGetEnviron (the symbol mentioned earlier) !=
> NSGetEnviron (the symbol mentioned in unity thread)
>
> In any case NSGetEnviron is not a symbol used by Xamarin.iOS (e.g. for
> Environment.*). So it's coming from somewhere else and need to be found.

It wasn't a typo - it was just a screw up on my part.

I googled for "_NDGetEnviron", but google returns _NSGetEnviron

The only other occurance of _NDGetEnviron is... this thread. Nearly
GoogleWhacked!

As to if Kosta mistyped it in the first place, I dont know :)

--
Nic Wise
t.  <a href="tel:%2B44%207788%20592%20806" value="+447788592806" target="_blank">+44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/



_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch



_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch
Reply | Threaded
Open this post in threaded view
|

Re: Issue with app publishing(refused because of private api usage _NDGetEnviron)

Kosta Mihajlov
Thanks a lot for the help Rolf, Sebastien. 
I believe we fixed the issue with your help
Thanks,
   Costa
   
On May 7, 2013, at 2:04 PM, Rolf Bjarne Kvinge <[hidden email]> wrote:

Hi,

On Tue, May 7, 2013 at 1:15 PM, Kosta Mihajlov <[hidden email]> wrote:
Sorry for the late response guys, 
   Yes, there is a typo in the email , 
   I run nm on the libs we are binding in the project, and i found that it uses this symbol     __NSGetEnviron. This is a closed source pdf library i'm using, can we make something about it so we are able to publish?

You must talk with the provider of that library, and they will have to fix it.

Best regards,
Rolf 

Thanks,
   Costa
  
On May 2, 2013, at 3:32 PM, Sebastien Pouliot <[hidden email]> wrote:

Hey Nic,

I meant typo in the original email :-)

It's hard to say why Apple would dislike something prefixed with ND* and D and S are close friends (on most keyboards)

Sebastien


On Thu, May 2, 2013 at 9:30 AM, Nic Wise <[hidden email]> wrote:
> It might be a typo but... NDGetEnviron (the symbol mentioned earlier) !=
> NSGetEnviron (the symbol mentioned in unity thread)
>
> In any case NSGetEnviron is not a symbol used by Xamarin.iOS (e.g. for
> Environment.*). So it's coming from somewhere else and need to be found.

It wasn't a typo - it was just a screw up on my part.

I googled for "_NDGetEnviron", but google returns _NSGetEnviron

The only other occurance of _NDGetEnviron is... this thread. Nearly
GoogleWhacked!

As to if Kosta mistyped it in the first place, I dont know :)

--
Nic Wise
t.  <a href="tel:%2B44%207788%20592%20806" value="+447788592806" target="_blank">+44 7788 592 806 | @fastchicken
b. http://www.fastchicken.co.nz/



_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch




_______________________________________________
MonoTouch mailing list
[hidden email]
http://lists.ximian.com/mailman/listinfo/monotouch